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

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
hyowons
2026-07-30 02:00:02 +09:00
parent c5dd2f98a8
commit a5f6b0ecd8
181 changed files with 5372 additions and 5251 deletions
+6 -3
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -19,6 +19,7 @@
| **골디 inbox 처리** (단독) | `python3 ~/.openclaw/agents/budget/workspace/skills/monthly-settlement/scripts/inbox_handler.py [--dry-run]` | 트리거 없음 — 월간결산 cron 진입부에서 자동 호출. 수동 점검·재처리용 |
| **워치리스트 모니터링** | `python3 ~/.openclaw/agents/stock/workspace/scripts/watchlist_monitor.py check` | launchd `ai.openclaw.stock.watchlist-monitor` (평일 0915시 매 15분) |
| **공모주 캘린더 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/ipo_calendar_sync.py` | launchd `ai.openclaw.stock.ipo-calendar-sync` (매월 1일 09:00) |
| **FOMC 캘린더 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/fomc_calendar_sync.py [--list\|--dry-run]` | launchd `ai.openclaw.stock.fomc-calendar-sync` (매월 1일 09:10). 연준 공식 일정표 → `[FOMC] YYYY-MM 회의` 종일 일정(회의 시작일 ET ~ 발표일 KST). `--list`는 파싱 결과만(캘린더 미접근) |
| **휴장일 동기화** | `python3 ~/.openclaw/agents/stock/workspace/scripts/holiday_sync.py [--show]` | launchd `ai.openclaw.stock.holiday-sync` (매주 일요일 03:00) |
| **Gmail 라벨 분류** | `python3 ~/.openclaw/workspace/scripts/gmail_label_classify.py [--dry-run]` | launchd `ai.openclaw.gmail-label-classify` (매일 01:00). self-sent 브리핑·종목분석·주식 리포트 메일 라벨링 + 24h 테스트메일 휴지통. LLM 미경유(`gog` CLI). 2026-06-26 cron→launchd 이관 |
| **매매 기록 적재** | `python3 ~/.openclaw/agents/stock/workspace/scripts/trade_journal.py {collect\|seed\|show\|query} ...` | launchd `ai.openclaw.stock.trade-journal` (평일 21:00 — NXT 야간 마감 후 ka10170 4계좌 적재). `seed`는 적재 시작일 이전 보유분을 현재 평단가로 1회 시드 (idempotent) |
+1
View File
@@ -47,6 +47,7 @@
| `briefing-fallback-2100` | 평일 21:00 (휴장일 self-skip) | `briefing_fallback.py final` | 마지막 폴백. 실패 시 레이 텔레그램 알림 |
| `send-balance` | 매월 1일 04:30 | `send_balance_to_budget.py` | 본인 계좌(가희 제외) → 골디 inbox `securities_balance`. 골디 결산 30분 전 |
| `ipo-calendar-sync` | 매주 금요일 17:00 | `ipo_calendar_sync.py` | IPO 청약·상장 일정 → Google Calendar |
| `fomc-calendar-sync` | 매월 1일 09:10 | `fomc_calendar_sync.py` | 연준 FOMC 회의 일정 → Google Calendar `[FOMC] YYYY-MM 회의`(+` (SEP)`). 2026-07-29 신설. **캘린더엔 2026-03-23 관리자님이 2027-12까지 11건을 이미 손으로 등록해 두셨고 날짜도 정확** — 스크립트는 그 표기를 승계해 흡수했으므로 당분간 실제 신규 등록은 2028년분부터. **이벤트 기간 = 회의 시작일(ET) ~ 발표일(KST)** 3일 — 성명 발표가 KST로는 회의 종료 다음날 새벽(EDT 03:00·EST 04:00)이라, ET 날짜만 넣으면 한국 장이 결과를 반영하는 날에 캘린더가 비어 브리핑 '오늘 일정'에 안 뜬다(2026-07-29 관리자님 지적으로 수정). colorId 9 보존(`--event-color` 미지정). 삭제 루프가 `old_start <= today`를 건너뛰어 지난 회의는 안 지움. `--list`=파싱만(gog 미호출) |
| `holiday-sync` | 매주 일요일 03:00 | `holiday_sync.py` | investing.com → `state/market_holidays.json`. 실패 시 기존 파일 보존 |
| `behive-web` | 상시 (`KeepAlive`) | `behive_web.py serve` | 3-탭 워치리스트 웹뷰. Tailscale `100.75.148.12:18790``https://stock.hyowons.net/`(Synology reverse proxy). 코드 변경 후 bootout/bootstrap 필요 |
| `trade-journal` | 평일 21:00 (스크립트가 휴장일 self-skip) | `trade_journal.py collect` | ka10170 당일매매일지 4계좌 → `state/trade_journal.jsonl` 누적. NXT 야간 마감 후 발화. 키움이 기간 거래내역 API 미제공이라 일자별 적재만이 유일. `briefing-fallback-2100`(21:00)과 같은 시각이지만 둘 다 read-only 충돌 없음. 재실행 시 (date,account) 단위 idempotent. **시드**: 2026-05-13 1회 `trade_journal.py seed` 로 적재 시작일 이전 보유분을 현재 평단가×(qty - tdy_buyq + tdy_sellq)로 단일 시드 행 압축(28건, seed=true 플래그, `*` 마커). 시드는 가중평균이라 과거 매수 단가와 정확히 일치 X. CLI: `collect`/`seed`/`show <code>`/`query --from --to --account --code`. **2026-06-15 4번째 명령 추가**: `python3 -m sim universe all` — sim 관찰목록 자동편입/제외. 키움 순위정보(ka90009 외인·기관순매수 + ka10023 거래량급증)에서 ETF·하락·급증률 이상치 거르고 각 15·총 120 상한 편입(origin='auto'), origin=auto·미보유·10거래일 무신호만 자동제외(보유/watch/interest/manual 불가침). 신호추적=scan_all `universe.mark_signals``auto_seen.json` |
+364 -44
View File
@@ -71,7 +71,7 @@ NET_WORTH_ALLOWED_UNITS_BY_DAYS: dict[int, tuple[str, ...]] = {
}
# 차트 표시 모드 — 'pnl'=시작점 baseline=0 누적손익(기본), 'net'=순자산 시계열.
# 'pnl'=시작점 baseline=0 누적손익(전부 누적), 'period'=각 점이 그 기간(일/주/월/연) 자체 손익, 'net'=순자산 시계열.
NET_WORTH_MODE_PRESETS = [('자산', 'net'), ('손익누적', 'pnl'), ('기간손익', 'period')]
NET_WORTH_MODE_PRESETS = [('자산', 'net'), ('손익누적', 'pnl'), ('기간손익', 'period')]
NET_WORTH_CHART_MODE = 'pnl'
KST = ZoneInfo('Asia/Seoul')
BIND_HOST = '' # 모든 인터페이스 (Tailscale + LAN). 외부망 직접 차단은 공유기 NAT가 담당.
@@ -1234,6 +1234,16 @@ def _build_owner_data(positions_by_acc: dict, balances: dict, journal_by_label:
day_pl_total = None
day_pl_reason = 'closed'
# 투자원금(누적 입금−출금) — 캐시 파일 읽기만 (키움 콜 0).
# principal None = 미집계(부트스트랩 전) → KPI 2행 미표시.
try:
import investment_principal as ip
pr = ip.get_principal(lbls)
except Exception as e:
sys.stderr.write(f'principal load failed: {e}\n')
pr = {'principal': None, 'cash_in': None, 'cash_out': None,
'qty_flow': False, 'by_label': {}}
owner_data[owner] = {
'labels': lbls,
'consolidated': consolidated,
@@ -1254,6 +1264,11 @@ def _build_owner_data(positions_by_acc: dict, balances: dict, journal_by_label:
'cash_out': cash_out,
'net_cash_flow': net_cash_flow,
'cash_flows': owner_cash_flows,
'principal': pr['principal'],
'principal_cash_in': pr['cash_in'],
'principal_cash_out': pr['cash_out'],
'principal_qty_flow': pr['qty_flow'],
'principal_by_label': pr['by_label'],
}
# 당일정산(phantom) 종목에 현재가 주입 — 매도 시점과 시장 종가 비교용.
@@ -1457,6 +1472,15 @@ def _fetch_all_data(entries: list[dict], only_owner: str | None = None) -> dict:
sys.stderr.write(f'cash flow fetch failed: {e}\n')
cash_flow_by_label = {}
# 투자원금 — 방금 받은 당일 입출금이 캐시에 미반영일 때만 올해 창 재조회(kt00016 라벨당 1콜).
# 입출금 없는 평시엔 캐시 읽기만 하고 호출 0. 부트스트랩 전이면 needs_refresh가 False.
try:
import investment_principal as ip
if ip.needs_refresh(labels, cash_flow_by_label):
ip.refresh_current(labels, cash_flow_by_label)
except Exception as e:
sys.stderr.write(f'principal refresh failed: {e}\n')
# 미체결 → owner별 + 전역 코드 keyed pending map
# pending_by_owner[owner][code] = {'buy_qty': N, 'sell_qty': M, 'orders': [...]}
# pending_global[code] = {'buy_qty': N, 'sell_qty': M, 'orders': [...]}
@@ -2990,8 +3014,186 @@ def _profit_class(value: int) -> str:
return 'neutral'
# 이 라벨 행 아래에 구분선을 넣는다 (KPI 카드 공용). 라벨 기준이라 순서를 바꿔도 따라간다.
# 총수익 = 전체 요약 묶음(총자산·투자원금·총수익)의 끝.
_KPI_SEP_AFTER = {'총수익'}
def _urlq(s: str) -> str:
"""쿼리스트링용 URL 인코딩 (owner 이름이 한글이라 필요)."""
from urllib.parse import quote
return quote(s, safe='')
def _kpi_more_button(src: str, title: str) -> str:
"""KPI 라벨 옆 [!] 버튼 — kpi-modal 을 열고 src를 fetch해 본문을 innerHTML.
값이 아니라 라벨(th) 쪽에 붙는다 금액 뒤에 두면 숫자 우측정렬이 흐트러진다.
src는 `{'html': '...'}` 주는 엔드포인트 (본문 조립은 서버 , JS는 삽입만).
"""
s = html.escape(src, quote=True)
t = html.escape(title, quote=True)
return (f'<button type="button" class="kpi-more-btn" data-kpi-src="{s}" data-kpi-title="{t}"'
f' title="{t} 상세" aria-label="{t} 상세 보기">!</button>')
def _acct_short(label: str) -> str:
"""모달 안에서는 owner가 이미 정해져 있으니 '가희_' 접두를 떼고 상품만 보인다."""
return label[3:] if label.startswith('가희_') else label
def _render_principal_body(owner: str) -> str:
"""투자원금 팝업 본문 — 요약 + 입출금 내역. 캐시만 읽어 키움 콜 0.
내역은 kt00015 tp='1' 전체인데 대부분이 배당·이자라 실제 입금이 묻힌다
기본은 원금 반영분만 보이고, 체크박스로 나머지까지 펼친다(CSS-only, JS 없음).
"""
import investment_principal as ip
from stock_portfolio_report import derive_owner
import kiwoom_client as kc
labels = [a['label'] for a in kc.list_accounts() if derive_owner(a['label']) == owner]
pr = ip.get_principal(labels)
if pr['principal'] is None:
return '<div class="muted small">투자원금이 아직 집계되지 않았어요.</div>'
fl = ip.get_flows(labels)
def srow(label: str, value: str, cls: str = '') -> str:
return (f'<div class="pm-srow{cls}"><span>{html.escape(label)}</span>'
f'<b>{value}</b></div>')
head = [
srow('투자원금', f'{pr["principal"]:,}', ' strong'),
srow('누적 입금', f'{pr["cash_in"]:,}'),
srow('누적 출금', f'{pr["cash_out"]:,}'),
]
if len(pr['by_label']) > 1:
head.append('<div class="pm-shead">계좌별</div>')
head += [srow(_acct_short(lb), f'{v:,}') for lb, v in pr['by_label'].items()]
# 계좌 간 대체(내 일반↔ISA)는 owner 합계에선 상쇄되지만 계좌별 수치는 밀어놓는다.
# 합계는 정확하니 계좌별만 오해하지 않게 알린다.
if any('대체' in (r['rmrk'] or '') for r in fl['rows']):
head.append('<div class="pm-note pm-note-in">계좌 간 이동(대체)이 있어 계좌별 금액은 '
'실제 외부 입금과 다를 수 있어요. 합계는 정확합니다.</div>')
if pr['qty_flow']:
head.append('<div class="pm-warn">⚠️ 주식 입출고(타사대체) 있음 — '
'현금 기준 원금이 실제보다 작을 수 있어요.</div>')
if not fl['reconciled']:
head.append('<div class="pm-warn">⚠️ 분류되지 않은 새 적요가 있어요 — '
'내역 합계와 원금이 어긋날 수 있습니다.</div>')
if not fl['available']:
return (f'<div class="pm-sum">{"".join(head)}</div>'
f'<div class="muted small pm-empty">입출금 내역은 아직 수집되지 않았어요.</div>')
n_pr = sum(1 for r in fl['rows'] if r['principal'])
n_ot = len(fl['rows']) - n_pr
items = []
for r in fl['rows']:
sign = '+' if r['io'] == 'IN' else ''
acls = 'in' if r['io'] == 'IN' else 'out'
dt = r['date']
dsp = f'{dt[:4]}.{dt[4:6]}.{dt[6:8]}' if len(dt) == 8 else dt
items.append(
f'<div class="pm-row{"" if r["principal"] else " other"}">'
f'<span class="pm-d">{html.escape(dsp)}</span>'
f'<span class="pm-rk">{html.escape(r["rmrk"] or "-")}</span>'
f'<span class="pm-ac">{html.escape(_acct_short(r["label"]))}</span>'
f'<b class="pm-amt {acls}">{sign}{r["amount"]:,}</b>'
f'</div>'
)
other_note = ''
if fl['other_in'] or fl['other_out']:
parts = []
if fl['other_in']:
parts.append(f'입금 {fl["other_in"]:,}')
if fl['other_out']:
parts.append(f'출금 {fl["other_out"]:,}')
other_note = (f'<div class="pm-note">배당·이자 등 {n_ot}건 ({" · ".join(parts)})은 '
f'투자 성과라서 원금에 넣지 않아요.</div>')
return (
f'<div class="pm-sum">{"".join(head)}</div>'
f'{other_note}'
f'<div class="pm-listhead">입출금 내역<span class="muted small"> · 원금 {n_pr}건</span></div>'
f'<input type="checkbox" id="pm-all" class="pm-all-cb">'
f'<label for="pm-all" class="pm-all-lb">배당·이자 등 {n_ot}건 함께 보기</label>'
f'<div class="pm-list">{"".join(items)}</div>'
)
def _render_cashflow_body(owner: str) -> str:
"""당일 입출금 팝업 본문 — 입금/출금 합계 + 건별 내역 (kt00015 tp='1' 당일).
렌더 경로가 이미 부르는 조회지만 팝업은 드물게 열리므로 그때 다시 부른다(계좌당 1).
"""
from stock_portfolio_report import derive_owner
import kiwoom_client as kc
labels = [a['label'] for a in kc.list_accounts() if derive_owner(a['label']) == owner]
by_label = kc.get_cash_flow_all(None, labels)
rows = [{**f, 'label': lb} for lb, fl in by_label.items() for f in (fl or [])]
if not rows:
return '<div class="muted small">오늘 입출금이 없어요.</div>'
rows.sort(key=lambda r: (r.get('time') or '', r['label']))
cash_in = sum(r['amount'] for r in rows if r['io_tp'] == 'IN')
cash_out = sum(r['amount'] for r in rows if r['io_tp'] == 'OUT')
def srow(label: str, value: str, cls: str = '') -> str:
return f'<div class="pm-srow{cls}"><span>{html.escape(label)}</span><b>{value}</b></div>'
head = []
if cash_in:
head.append(srow('입금', f'{cash_in:,}'))
if cash_out:
head.append(srow('출금', f'{cash_out:,}'))
# 순액은 양방향 다 있을 때만 — 한쪽뿐이면 위 합계와 같은 값이다.
if cash_in and cash_out:
net = cash_in - cash_out
head.append(srow('순 입출금', f'{net:+,}', ' strong'))
items = []
for r in rows:
sign = '+' if r['io_tp'] == 'IN' else ''
acls = 'in' if r['io_tp'] == 'IN' else 'out'
tm = (r.get('time') or '')[:5]
items.append(
f'<div class="pm-row">'
f'<span class="pm-d">{html.escape(tm)}</span>'
f'<span class="pm-rk">{html.escape(r.get("rmrk") or "-")}</span>'
f'<span class="pm-ac">{html.escape(_acct_short(r["label"]))}</span>'
f'<b class="pm-amt {acls}">{sign}{r["amount"]:,}</b>'
f'</div>'
)
return (
f'<div class="pm-sum">{"".join(head)}</div>'
f'<div class="pm-listhead">내역<span class="muted small"> · {len(rows)}건</span></div>'
f'<div class="pm-list">{"".join(items)}</div>'
)
def _render_kpi_modal() -> str:
"""KPI 상세 공용 팝업 (투자원금·당일 입출금 등). shell HTML 직속이라 panels swap 영향 없음.
라벨 [!] 클릭 버튼의 data-kpi-src fetch 본문 innerHTML."""
return (
'<div id="kpi-modal" class="modal hidden" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="kpi-modal-title">'
'<div class="modal-overlay" data-modal-close="1"></div>'
'<div class="modal-box" role="document">'
'<div class="modal-head">'
'<div class="modal-title" id="kpi-modal-title"><span data-kpi-title>상세</span></div>'
'<button type="button" class="modal-close" data-modal-close="1" aria-label="닫기">×</button>'
'</div>'
'<div class="principal-body" data-kpi-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_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool = False) -> str:
"""owner 블록 상단 KPI 카드 (총 평가/손익/예수금/순자산 + 계좌별 예수금).
"""owner 블록 상단 KPI 카드 (총자산/평가금액/예수금 + 매입·손익 + 원금·총수익 + 당일).
compact=True: 자산정보 탭용 당일 매매·당일 실현손익 생략.
"""
@@ -3029,45 +3231,71 @@ def _render_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool
deposit_locked_html = (
f'<span class="muted small"> · 매수 묶임 {locked:,}원</span>' if locked > 0 else ''
)
# 구분 없는 단일 목록 (관리자님 지정 순서).
# 라벨 규칙: '총'은 계좌 전체(현금 포함) 기준일 때만 쓴다.
# 총자산 = 평가금액 + 예수금 / 총수익 = 총자산 − 투자원금
# 평가금액·매입금액·평가손익은 보유종목 한정이라 '총'을 붙이지 않는다.
# 맨 위는 계좌 전체 요약 3행 — 총자산(가진 돈) / 투자원금(넣은 돈) / 총수익(그 차이).
# 아래 구분선은 이 묶음 끝(총수익)에 붙는다. 원금 미집계면 뒤 두 행과 선이 함께 사라진다.
principal = d.get('principal')
kpis = [
(' 평가금액', f'{d["total_value"]:,}'),
('총 매입금액', f'{d["total_cost"]:,}'),
('총 평가손익', f'<span class="{pcls}">{sign}{profit:,}원 ({sign}{profit_rate:.2f}%)</span>'),
('당일 평가손익', day_pl_html),
('예수금', f'{deposit_pct_html}{d["deposit"]:,}{deposit_locked_html}'),
('순자산', f'<span class="net">{d["total_net"]:,}원</span>'),
('자산', f'<span class="net">{d["total_net"]:,}</span>'),
]
if principal:
total_ret = d['total_net'] - principal
tcls = _profit_class(total_ret)
tsign = '+' if total_ret >= 0 else ''
tpct = total_ret / principal * 100
# 값은 금액만, 상세는 라벨 옆 [!] 버튼 → 팝업. (3번째 원소 = 라벨 뒤 HTML)
kpis.append(('투자원금', f'{principal:,}',
_kpi_more_button(f'/api/principal?owner={_urlq(owner)}', '투자원금')))
kpis.append(('총수익',
f'<span class="{tcls}">{tsign}{total_ret:,}원 ({tsign}{tpct:.2f}%)</span>'))
# 당일 입출금은 예수금 바로 아래 (현금 잔액 ↔ 그날 현금 이동). 없으면 행 자체가 없다.
cash_in = d.get('cash_in', 0)
cash_out = d.get('cash_out', 0)
cashflow_row = None
if cash_in or cash_out:
net = cash_in - cash_out
ncls = _profit_class(net)
nsign = '+' if net >= 0 else ''
cf_detail = []
if cash_in:
cf_detail.append(f'입금 {cash_in:,}')
if cash_out:
cf_detail.append(f'출금 {cash_out:,}')
cf_detail_html = f'<span class="muted small"> · {" · ".join(cf_detail)}</span>'
kpis.append(('당일 입출금', f'<span class="{ncls}">{nsign}{net:,}원</span>{cf_detail_html}'))
if compact:
kpis.append(('보유 종목', f'{held_count}'))
else:
traded_count = len(d["traded_today"])
kpis.append(('보유종목/당일매매', f'{held_count}개 / {traded_count}'))
# 값은 순액만 — 입금/출금 쪼갠 내역과 건별 목록은 라벨 옆 [!] 팝업으로.
cashflow_row = ('당일 입출금',
f'<span class="{ncls}">{nsign}{net:,}</span>',
_kpi_more_button(f'/api/cashflow?owner={_urlq(owner)}', '당일 입출금'))
kpis += [
('매입금액', f'{d["total_cost"]:,}'),
('평가금액', f'{d["total_value"]:,}'),
('평가손익', f'<span class="{pcls}">{sign}{profit:,}원 ({sign}{profit_rate:.2f}%)</span>'),
('당일 평가손익', day_pl_html),
('예수금', f'{deposit_pct_html}{d["deposit"]:,}{deposit_locked_html}'),
]
if cashflow_row:
kpis.append(cashflow_row)
kpis.append(('보유종목/당일매매', f'{held_count}개 / {len(d["traded_today"])}'))
if not compact:
realized_pl = d.get('realized_pl_total', 0)
realized_fees = d.get('realized_fees_total', 0)
if d.get('traded_today') and (realized_pl or realized_fees):
rcls = _profit_class(realized_pl)
rsign = '+' if realized_pl >= 0 else ''
fee_html = f'<span class="muted small"> · 수수료·세금 {realized_fees:,}원</span>' if realized_fees else ''
realized_html = f'<span class="{rcls}">{rsign}{realized_pl:,}원</span>{fee_html}'
kpis.append(('당일 실현손익', realized_html))
_rtk = {'총 평가금액': 'value', '총 평가손익': 'profit', '순자산': 'net', '당일 평가손익': 'daypl'}
kpis.append(('당일 실현손익',
f'<span class="{rcls}">{rsign}{realized_pl:,}원</span>{fee_html}'))
_rtk ={'평가금액': 'value', '평가손익': 'profit', '총자산': 'net', '당일 평가손익': 'daypl',
'총수익': 'totret'}
_row_list = []
for k, v in kpis:
for i, item in enumerate(kpis):
k, v = item[0], item[1]
lbl_suffix = item[2] if len(item) > 2 else '' # 라벨 뒤 버튼 등 (escape 대상 아님)
attr = f' data-rt-kpi="{_rtk[k]}"' if k in _rtk else ''
_row_list.append(f'<tr><th>{html.escape(k)}</th><td{attr}>{v}</td></tr>')
# 라벨 기준이라 조건부 행이 빠져도 선이 엉뚱한 데 붙지 않는다. 마지막 행엔 안 붙임.
cls = ' class="kpi-sep"' if (k in _KPI_SEP_AFTER and i < len(kpis) - 1) else ''
_row_list.append(
f'<tr{cls}><th>{html.escape(k)}{lbl_suffix}</th><td{attr}>{v}</td></tr>'
)
rows = ''.join(_row_list)
trade_btn_html = ''
if not compact:
@@ -3078,12 +3306,12 @@ def _render_owner_kpi(owner: str, d: dict, owner_label_text: str, compact: bool
f'data-trade-owner="{owner_attr}" data-trade-stock="{label_attr}">'
f'📋 전체 거래내역</button>'
)
return f'''<section class="owner-card" data-rt-owner="{html.escape(owner, quote=True)}">
# data-rt-principal — setOwnerKpis가 순자산 틱마다 총수익을 재계산하는 데 쓴다(0=미집계).
return f'''<section class="owner-card" data-rt-owner="{html.escape(owner, quote=True)}" data-rt-principal="{principal or 0}">
<div class="owner-title-row">
<div class="owner-title">{html.escape(owner_label_text)}</div>
<div class="owner-title">{html.escape(owner_label_text)}<span class="owner-sub">· {html.escape(labels_disp)}</span></div>
{trade_btn_html}
</div>
<div class="owner-sub">{html.escape(labels_disp)}</div>
<table class="kpi">{rows}</table>
</section>'''
@@ -3139,14 +3367,15 @@ def _render_account_kpi(owner: str, label: str, owner_d: dict, balances: dict, j
f'<span class="muted small"> · 매수 묶임 {locked:,}원</span>' if locked > 0 else ''
)
# 라벨·순서는 _render_owner_kpi와 통일 ('총'=현금 포함 전체).
kpis = [
(' 평가금액', f'{total_value:,}'),
('매입금액', f'{total_cost:,}'),
('총 평가손익', f'<span class="{pcls}">{sign}{total_profit:,}원 ({sign}{total_profit_rate:.2f}%)</span>'),
('자산', f'<span class="net">{total_net:,}</span>'),
('매입금액', f'{total_cost:,}'),
('평가금액', f'{total_value:,}'),
('평가손익', f'<span class="{pcls}">{sign}{total_profit:,}원 ({sign}{total_profit_rate:.2f}%)</span>'),
('당일 평가손익', day_pl_html),
('예수금', f'{deposit_pct_html}{deposit:,}{deposit_locked_html}'),
('순자산', f'<span class="net">{total_net:,}원</span>'),
('보유 종목', f'{held_count}'),
('보유종목/당일매매', f'{held_count}개 / {len(traded_today_codes)}'),
]
if traded_today_codes and (realized_pl or realized_fees):
rcls = _profit_class(realized_pl)
@@ -3154,15 +3383,16 @@ def _render_account_kpi(owner: str, label: str, owner_d: dict, balances: dict, j
fee_html = f'<span class="muted small"> · 수수료·세금 {realized_fees:,}원</span>' if realized_fees else ''
kpis.append(('당일 실현손익', f'<span class="{rcls}">{rsign}{realized_pl:,}원</span>{fee_html}'))
rows_html = ''.join(
f'<tr><th>{html.escape(k)}</th><td>{v}</td></tr>' for k, v in kpis
)
_rows = []
for i, (k, v) in enumerate(kpis):
cls = ' class="kpi-sep"' if (k in _KPI_SEP_AFTER and i < len(kpis) - 1) else ''
_rows.append(f'<tr{cls}><th>{html.escape(k)}</th><td>{v}</td></tr>')
rows_html = ''.join(_rows)
sub_text = label_disp if label_disp is not None else label
return f'''<section class="owner-card">
<div class="owner-title-row">
<div class="owner-title">{html.escape(owner_label_text)}</div>
<div class="owner-title">{html.escape(owner_label_text)}<span class="owner-sub">· {html.escape(sub_text)}</span></div>
</div>
<div class="owner-sub">{html.escape(sub_text)}</div>
<table class="kpi">{rows_html}</table>
</section>'''
@@ -4361,7 +4591,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No
elif selected_unit == 'year':
empty_msg = '연별 차트는 2년 이상의 데이터가 필요합니다.'
else:
_empty_metric = '기간손익' if per_period else ('손익누적' if is_pnl else '자산')
_empty_metric = '기간손익' if per_period else ('손익누적' if is_pnl else '자산')
empty_msg = f'최근 {_empty_metric} 추이 데이터가 부족합니다.'
def _empty(msg: str) -> str:
@@ -4552,7 +4782,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No
else:
title_n = len(series)
_unit_word = {'week': '', 'month': '', 'year': ''}.get(selected_unit, '영업일')
_title_metric = '손익' if per_period else ('손익누적' if is_pnl else '자산')
_title_metric = '손익' if per_period else ('손익누적' if is_pnl else '자산')
title = f'최근 {title_n}{_unit_word} {_title_metric}' + (' · 오늘 잠정' if has_live else '')
# 영역 채우기는 종가 구간만 (실선 영역). 점선 구간은 area 미적용.
@@ -4665,7 +4895,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No
svg_parts = [
f'<svg viewBox="0 0 {W} {H}" preserveAspectRatio="xMidYMid meet" class="net-chart-svg" role="img" '
f'aria-label="자산 추이 {html.escape(range_label)}">',
f'aria-label="자산 추이 {html.escape(range_label)}">',
'<defs>'
f'<linearGradient id="{fill_id}" x1="0" x2="0" y1="0" y2="1">'
f'<stop offset="0%" stop-color="{line_color}" stop-opacity="0.32"/>'
@@ -4750,7 +4980,7 @@ def _render_net_worth_chart(series: list[tuple[str, int]], current_net: int | No
'<div class="tip-date"></div>'
f'<div class="tip-row"><span class="muted">{html.escape(_day_label)}</span><b class="tip-day">—</b></div>'
'<div class="tip-row"><span class="muted">누적 손익</span><b class="tip-total">—</b></div>'
f'<div class="tip-row tip-net-row"{_net_row_hidden}><span class="muted">자산</span><b class="tip-net">—</b></div>'
f'<div class="tip-row tip-net-row"{_net_row_hidden}><span class="muted">자산</span><b class="tip-net">—</b></div>'
# 입출금 행 — 클라이언트 JS가 cf_net 있을 때만 display 토글 (pnl 모드에선 영구 hidden).
f'<div class="tip-row tip-cf-row"{_cf_row_hidden}><span class="muted">입출금</span><b class="tip-cf">—</b></div>'
'</div>'
@@ -5624,7 +5854,7 @@ body.modal-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hid
border-top: 6px solid #1c2230;
}
.stock-name-tip.below::after { top: -6px; bottom: auto; border-top: 0; border-bottom: 6px solid #1c2230; }
.owner-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 2px; }
.owner-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.btn-trades-all { background: #14171f; color: #c9ccd3; border: 1px solid rgba(201,204,211,0.28); border-radius: 8px; padding: 5px 10px; font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; flex: 0 0 auto; }
.btn-trades-all:hover { background: rgba(201,204,211,0.06); border-color: #6aa9ff; color: #6aa9ff; }
.btn-trades-all:active { transform: translateY(1px); }
@@ -5689,7 +5919,8 @@ section.tab-content { min-height: calc(100dvh - 110px); }
border-radius: 10px;
}
.owner-title { font-size: 15px; font-weight: 600; color: #f0f0f0; letter-spacing: -0.01em; }
.owner-sub { font-size: 11px; color: #5a5f6c; margin-top: 2px; margin-bottom: 10px; }
/* 계좌 라벨 owner-title 인라인(제목과 ). 하단 여백은 owner-title-row가 갖는다. */
.owner-sub { margin-left: 6px; font-size: 11px; font-weight: 400; letter-spacing: 0; color: #5a5f6c; white-space: nowrap; }
.owner-card table.kpi { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.owner-card table.kpi th {
text-align: left; font-weight: 400; color: #8b8f9a;
@@ -5701,6 +5932,47 @@ section.tab-content { min-height: calc(100dvh - 110px); }
.owner-card table.kpi td .up { color: #ff4d5e; font-weight: 600; }
.owner-card table.kpi td .down { color: #4a8cf0; font-weight: 600; }
.owner-card table.kpi td .neutral { color: #c9ccd3; }
/* KPI 구분선 표시한 아래에 (_KPI_SEP_AFTER: 투자원금·보유종목/당일매매) */
.owner-card table.kpi tr.kpi-sep > th,
.owner-card table.kpi tr.kpi-sep > td { border-bottom: 1px solid #1f2330; padding-bottom: 9px; }
.owner-card table.kpi tr.kpi-sep + tr > th,
.owner-card table.kpi tr.kpi-sep + tr > td { padding-top: 9px; }
/* KPI 라벨 작은 [!] kpi-modal 팝업 (투자원금·당일 입출금) */
.owner-card table.kpi th .kpi-more-btn { display: inline-block; margin-left: 5px; width: 15px; height: 15px; padding: 0; border-radius: 50%; font-size: 10px; font-weight: 700; line-height: 13px; text-align: center; color: #5a5f6c; background: transparent; border: 1px solid rgba(120,124,135,0.35); cursor: pointer; font-family: inherit; vertical-align: middle; }
.owner-card table.kpi th .kpi-more-btn:hover { color: #d6b34a; border-color: rgba(214,179,74,0.55); }
.owner-card table.kpi th .kpi-more-btn:active { transform: translateY(1px); }
/* 투자원금 팝업 */
.principal-body { font-variant-numeric: tabular-nums; }
.pm-sum { padding: 10px 12px; background: #11141c; border: 1px solid #1f2330; border-radius: 8px; }
.pm-srow { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; line-height: 2; }
.pm-srow span { color: #8b8f9a; }
.pm-srow b { color: #d7dae1; font-weight: 500; }
.pm-srow.strong { font-size: 14px; padding-bottom: 4px; margin-bottom: 4px; border-bottom: 1px solid #1f2330; }
.pm-srow.strong span { color: #c9ccd3; }
.pm-srow.strong b { color: #f0f0f0; font-weight: 600; }
.pm-shead { margin-top: 6px; padding-top: 6px; border-top: 1px solid #1f2330; font-size: 10px; color: #6b7080; }
.pm-warn { margin-top: 8px; font-size: 11px; line-height: 1.5; color: #d6b34a; }
.pm-note { margin: 10px 2px 0; font-size: 11px; line-height: 1.55; color: #6b7080; }
.pm-note-in { margin: 6px 0 0; } /* 요약 박스 안쪽 주석 */
.pm-empty { margin-top: 12px; }
.pm-listhead { margin: 14px 2px 8px; font-size: 12px; font-weight: 600; color: #c9ccd3; }
/* 배당·이자 포함 토글 체크박스 + 형제 선택자로 JS 없이 필터 */
.pm-all-cb { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.pm-all-lb { display: inline-block; margin: 0 2px 8px; padding: 3px 9px; border-radius: 5px; font-size: 11px; color: #5a5f6c; border: 1px dashed rgba(120,124,135,0.30); cursor: pointer; }
.pm-all-lb:hover { color: #d6b34a; border-color: rgba(214,179,74,0.45); }
.pm-all-cb:checked ~ .pm-all-lb { color: #d6b34a; border-color: rgba(214,179,74,0.45); border-style: solid; }
.pm-all-cb:not(:checked) ~ .pm-list .pm-row.other { display: none; }
.pm-list { display: flex; flex-direction: column; max-height: 46dvh; overflow-y: auto; }
.pm-row { display: grid; grid-template-columns: 74px 1fr auto auto; gap: 8px; align-items: baseline; padding: 6px 2px; border-bottom: 1px solid #14171f; font-size: 11px; }
.pm-row.other { opacity: 0.55; }
.pm-row .pm-d { color: #6b7080; }
.pm-row .pm-rk { color: #c9ccd3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-row .pm-ac { color: #5a5f6c; font-size: 10px; }
.pm-row .pm-amt { font-weight: 600; white-space: nowrap; }
.pm-row .pm-amt.in { color: #ff4d5e; }
.pm-row .pm-amt.out { color: #4a8cf0; }
.cash-list { list-style: none; margin: 4px 14px 12px; padding: 8px 12px; background: #0d1018; border: 1px solid #14171f; border-radius: 8px; font-size: 12px; color: #c9ccd3; font-variant-numeric: tabular-nums; }
.cash-list li { padding: 2px 0; }
@@ -9874,6 +10146,7 @@ def render_html() -> str:
group_assign_modal_html = _render_group_assign_modal()
group_manage_modal_html = _render_group_manage_modal()
trade_modal_html = _render_trade_modal()
kpi_modal_html = _render_kpi_modal()
info_modal_html = _render_info_modal()
info_desc_modal_html = _render_info_desc_modal()
advice_modal_html = _render_advice_modal()
@@ -10324,6 +10597,24 @@ def render_html() -> str:
'loadInfoSymbols();'
'infoRenderBody();'
'}'
# KPI 상세 공용 팝업 — 서버가 본문 HTML을 만들어 주므로 여기선 innerHTML만.
'function openKpiModal(src,title){'
'var m=document.getElementById("kpi-modal");if(!m||!src)return;'
'var t=m.querySelector("[data-kpi-title]");'
'if(t)t.textContent=title||"상세";'
'var b=m.querySelector("[data-kpi-body]");'
'if(b)b.innerHTML=\'<div class="muted small">불러오는 중…</div>\';'
'm.classList.remove("hidden");m.setAttribute("aria-hidden","false");'
'lockScroll();'
'fetch(src,{credentials:"same-origin"})'
'.then(function(r){return r.json();})'
'.then(function(j){'
'if(!b)return;'
'if(!j||j.error||!j.html){b.innerHTML=\'<div class="muted small">불러오기 실패</div>\';return;}'
'b.innerHTML=j.html;'
'})'
'.catch(function(){if(b)b.innerHTML=\'<div class="muted small">네트워크 오류</div>\';});'
'}'
'function openTradeModal(code,name,owner){'
'var m=document.getElementById("trade-modal");if(!m)return;'
'var ownerMode=!code && !!owner;'
@@ -10571,6 +10862,13 @@ def render_html() -> str:
'openInfoModal(infoBtn.getAttribute("data-info-code")||"",infoBtn.getAttribute("data-info-stock")||"");'
'return;'
'}'
'var prBtn=t.closest&&t.closest(".kpi-more-btn");'
'if(prBtn){'
'e.preventDefault();'
'e.stopPropagation();'
'openKpiModal(prBtn.getAttribute("data-kpi-src")||"",prBtn.getAttribute("data-kpi-title")||"");'
'return;'
'}'
'var infoQ=t.closest&&t.closest(".info-q");'
'if(infoQ){'
'e.preventDefault();'
@@ -12260,6 +12558,11 @@ window.openPinModal = openPinModal;
var td=card.querySelector('[data-rt-kpi="daypl"]');
if(td) td.innerHTML='<span class="'+udcls(T.daypl)+'">'+sgn(T.daypl)+''+(T.dpct!==null?' ('+(T.dpct>=0?'+':'')+T.dpct.toFixed(2)+'%)':'')+'</span>';
}
// 총수익 = 순자산 투자원금. 순자산이 틱마다 움직이니 같이 갱신해야 값이 어긋나지 않는다.
var pr=parseFloat(card.getAttribute('data-rt-principal')||'0');
var tr=card.querySelector('[data-rt-kpi="totret"]');
if(tr&&pr){var v=T.net-pr,p=v/pr*100;
tr.innerHTML='<span class="'+udcls(v)+'">'+sgn(v)+'원 ('+(p>=0?'+':'')+p.toFixed(2)+'%)</span>';}
});
// 순자산 차트 오늘(장중) 포인트 라벨 + SVG ·마지막 선분을 1초마다 함께 이동(라벨 불일치 제거).
document.querySelectorAll('.net-chart-last[data-rt-nw-owner="'+owner+'"][data-rt-nw-live="1"]').forEach(function(el){
@@ -12528,6 +12831,7 @@ window.openPinModal = openPinModal;
{group_manage_modal_html}
{candidate_modal_html}
{trade_modal_html}
{kpi_modal_html}
{info_modal_html}
{info_desc_modal_html}
{advice_modal_html}
@@ -12801,6 +13105,22 @@ class Handler(BaseHTTPRequestHandler):
pass
self._send_json(200, {'connected': connected, 'sub_count': sub_count, 'quotes': quotes, 'vi': vi, 'fill_seq': fill_seq})
return
# KPI 라벨 [!] 팝업 본문 — 서버가 HTML 조립, 클라이언트는 innerHTML만.
if parsed.path in ('/api/principal', '/api/cashflow'):
qs = parse_qs(parsed.query)
owner_q = (qs.get('owner') or [''])[0].strip()
if not owner_q:
self._send_json(400, {'error': 'owner required'})
return
render = (_render_principal_body if parsed.path == '/api/principal'
else _render_cashflow_body)
try:
self._send_json(200, {'html': render(owner_q)})
except Exception as e:
sys.stderr.write(f'{parsed.path} failed: {e}\n')
self._send_json(500, {'error': str(e)})
return
if parsed.path == '/api/trades':
qs = parse_qs(parsed.query)
code = (qs.get('code') or [''])[0].strip()
@@ -0,0 +1,341 @@
#!/usr/bin/env python3
"""미 연준 FOMC 회의 일정 → Google 캘린더 동기화 (조회+등록 전용).
출처: federalreserve.gov 공식 FOMC 일정표. 회의 날짜는 미 동부 기준 그대로 등록한다
(기존 수동 등록분·시황 자막 관례와 동일).
"""
from __future__ import annotations
import argparse
import json
import re
import subprocess
import urllib.request
from dataclasses import dataclass
from datetime import date, datetime, timedelta
from pathlib import Path
from zoneinfo import ZoneInfo
KST = ZoneInfo('Asia/Seoul')
ET = ZoneInfo('America/New_York')
CALENDAR_ID = 'mini.snowoyh@gmail.com'
WORKSPACE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace')
STATE_DIR = WORKSPACE / 'state'
STATE_DIR.mkdir(parents=True, exist_ok=True)
STATE_FILE = STATE_DIR / 'fomc_calendar_sync.json'
SOURCE_URL = 'https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm'
MONTHS = {
'january': 1, 'february': 2, 'march': 3, 'april': 4, 'may': 5, 'june': 6,
'july': 7, 'august': 8, 'september': 9, 'october': 10, 'november': 11, 'december': 12,
}
YEAR_PANEL_RE = re.compile(r'(\d{4})\s+FOMC\s+Meetings')
MEETING_ROW_RE = re.compile(
r'fomc-meeting__month[^>]*>\s*(?:<strong>)?(.*?)(?:</strong>)?\s*</div>'
r'.*?fomc-meeting__date[^>]*>\s*(.*?)\s*</div>',
re.S,
)
@dataclass
class Meeting:
start_date: date # 회의 시작 (미 동부)
end_date: date # 회의 종료 (미 동부, inclusive)
is_sep: bool
@property
def state_key(self) -> str:
# FOMC는 한 달에 두 번 열리지 않으므로 시작월이 고유 키
return f'{self.start_date:%Y-%m}'
@property
def summary(self) -> str:
base = f'[FOMC] {self.state_key} 회의'
return f'{base} (SEP)' if self.is_sep else base
@property
def announce_kst(self) -> datetime:
"""성명 발표 = 회의 마지막날 미 동부 14:00. 서머타임은 zoneinfo가 처리."""
et = datetime(self.end_date.year, self.end_date.month, self.end_date.day, 14, 0, tzinfo=ET)
return et.astimezone(KST)
@property
def cal_start(self) -> date:
return self.start_date
@property
def cal_end(self) -> date:
"""캘린더 이벤트 마지막날 = 발표일(KST). 미 동부 회의 종료 다음날이라
한국 장이 결과를 반영하는 날까지 일정이 덮인다."""
return self.announce_kst.date()
@property
def description(self) -> str:
if self.start_date == self.end_date:
days = self.start_date.isoformat()
else:
days = f'{self.start_date.isoformat()} ~ {self.end_date.isoformat()}'
lines = [
f'회의일(미 동부): {days}',
f'성명 발표: {self.announce_kst:%Y-%m-%d %H:%M} KST (한국 장 반영일)',
]
if self.is_sep:
lines.append('경제전망(SEP)·점도표 공개 회의')
lines.append(f'출처: {SOURCE_URL}')
return '\n'.join(lines)
def run(cmd: list[str]) -> str:
p = subprocess.run(cmd, capture_output=True, text=True)
if p.returncode != 0:
raise RuntimeError(p.stderr.strip() or p.stdout.strip() or 'command failed')
return p.stdout
def fetch(url: str) -> str:
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
with urllib.request.urlopen(req, timeout=30) as r:
return r.read().decode('utf-8', 'ignore')
def parse_meetings(html: str, after: date) -> list[Meeting]:
"""연도 패널별로 회의 행을 훑어 캘린더 기간이 아직 안 끝난 회의만 반환.
기준을 회의 시작일이 아니라 `cal_end`(발표일 KST)로 두는 이유: 미 동부 회의가
끝났어도 한국 장 반영일이 남아 있으면 아직 관리 대상이다.
"""
panels = [(m.group(1), m.start()) for m in YEAR_PANEL_RE.finditer(html)]
if not panels:
return []
bounds = panels + [('', len(html))]
meetings: list[Meeting] = []
for (year_raw, start), (_, end) in zip(bounds[:-1], bounds[1:]):
year = int(year_raw)
if year < after.year:
continue
for row in MEETING_ROW_RE.finditer(html[start:end]):
month_txt = re.sub(r'<[^>]+>', '', row.group(1)).strip()
day_txt = re.sub(r'<[^>]+>', '', row.group(2)).strip()
m = parse_row(year, month_txt, day_txt)
if m and m.cal_end > after:
meetings.append(m)
meetings.sort(key=lambda m: m.start_date)
return meetings
def parse_row(year: int, month_txt: str, day_txt: str) -> Meeting | None:
"""'April/May' + '28-1*' 같은 월 경계 표기까지 처리."""
months = [MONTHS[p.strip().lower()] for p in month_txt.split('/') if p.strip().lower() in MONTHS]
if not months:
return None
is_sep = '*' in day_txt
days = [int(d) for d in re.findall(r'\d+', day_txt)]
if not days:
return None
start_month = months[0]
end_month = months[-1]
start_year = year
end_year = year if end_month >= start_month else year + 1 # 12월/1월 회의 대비
try:
start = date(start_year, start_month, days[0])
end = date(end_year, end_month, days[-1])
except ValueError:
return None
if end < start:
return None
return Meeting(start, end, is_sep)
def load_state() -> dict:
if STATE_FILE.exists():
try:
return json.loads(STATE_FILE.read_text())
except Exception:
return {}
return {}
def save_state(state: dict):
STATE_FILE.write_text(json.dumps(state, ensure_ascii=False, indent=2))
def state_key_from_summary(summary: str) -> str | None:
m = re.match(r'\[FOMC\]\s*(\d{4}-\d{2})\b', (summary or '').strip())
return m.group(1) if m else None
def fetch_existing_events(start_date: date, end_date: date) -> dict[str, list[dict]]:
start_dt = datetime(start_date.year, start_date.month, start_date.day, 0, 0, tzinfo=KST)
end_dt = datetime(end_date.year, end_date.month, end_date.day, 0, 0, tzinfo=KST)
out = run([
'gog', 'calendar', 'events', CALENDAR_ID,
'--from', start_dt.isoformat(), '--to', end_dt.isoformat(),
'--all-pages', '--max', '250', '--json'
])
data = json.loads(out)
existing: dict[str, list[dict]] = {}
for ev in data.get('events', []):
key = state_key_from_summary(ev.get('summary', ''))
if key:
existing.setdefault(key, []).append(ev)
return existing
def create_event(m: Meeting, dry_run: bool = False):
start = m.cal_start.isoformat()
end = (m.cal_end + timedelta(days=1)).isoformat() # 종일 이벤트의 end는 exclusive
if dry_run:
print(json.dumps({'create': m.summary, 'from': start, 'to': m.cal_end.isoformat()}, ensure_ascii=False))
return
# --event-color 미지정: 기존 이벤트에 지정된 색을 덮어쓰지 않는다
run([
'gog', 'calendar', 'create', CALENDAR_ID,
'--summary', m.summary,
'--description', m.description,
'--from', start,
'--to', end,
'--all-day',
])
def update_event(event_id: str, m: Meeting, dry_run: bool = False) -> str:
start = m.cal_start.isoformat()
end = (m.cal_end + timedelta(days=1)).isoformat()
if dry_run:
print(json.dumps({'update': m.summary, 'event_id': event_id, 'from': start, 'to': m.cal_end.isoformat()}, ensure_ascii=False))
return 'updated'
try:
run([
'gog', 'calendar', 'update', CALENDAR_ID, event_id,
'--summary', m.summary,
'--description', m.description,
'--from', start,
'--to', end,
'--all-day',
])
return 'updated'
except Exception:
run(['gog', 'calendar', 'delete', CALENDAR_ID, event_id, '--force', '--no-input'])
create_event(m, dry_run=False)
return 'recreated'
def delete_event(event_id: str, dry_run: bool = False):
if dry_run:
print(json.dumps({'delete_event_id': event_id}, ensure_ascii=False))
return
run(['gog', 'calendar', 'delete', CALENDAR_ID, event_id, '--force', '--no-input'])
def event_date_range(ev: dict) -> tuple[str, str]:
start_info = ev.get('start', {})
end_info = ev.get('end', {})
start = start_info.get('date') or start_info.get('dateTime', '')[:10]
end_excl = end_info.get('date') or end_info.get('dateTime', '')[:10]
end = ''
if end_excl:
end = (date.fromisoformat(end_excl) - timedelta(days=1)).isoformat()
return start, end
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--dry-run', action='store_true')
parser.add_argument('--list', action='store_true', help='파싱 결과만 출력 (캘린더 미접근)')
args = parser.parse_args()
today = datetime.now(KST).date()
meetings = parse_meetings(fetch(SOURCE_URL), today)
if args.list:
print(json.dumps({
'today': today.isoformat(),
'total': len(meetings),
'meetings': [
{'key': m.state_key, 'summary': m.summary,
'meeting_et': f'{m.start_date.isoformat()}~{m.end_date.isoformat()}',
'announce_kst': m.announce_kst.strftime('%Y-%m-%d %H:%M'),
'cal_start': m.cal_start.isoformat(), 'cal_end': m.cal_end.isoformat()}
for m in meetings
],
}, ensure_ascii=False, indent=2))
return
state = load_state()
end_date = max((m.cal_end for m in meetings), default=today) + timedelta(days=1)
# 스크래핑 실패 시 기존 일정이 몰살되는 사고 방지 — meetings 비면 cleanup 스킵
# 조회 시작이 today인 건 오늘 걸쳐 있는 진행 중 회의도 갱신 대상이기 때문
existing = {} if not meetings else fetch_existing_events(today, end_date)
created, updated, recreated, deleted, duplicates_removed = [], [], [], [], []
unchanged = 0
changes = []
keys = {m.state_key for m in meetings}
for m in meetings:
existing_list = existing.get(m.state_key, [])
# 같은 키로 여러 건이면 가장 최근 created를 남기고 나머지 삭제
if len(existing_list) > 1:
existing_list.sort(key=lambda e: e.get('created', ''), reverse=True)
for dup in existing_list[1:]:
delete_event(dup['id'], dry_run=args.dry_run)
duplicates_removed.append(m.state_key)
changes.append({'key': m.state_key, 'action': 'duplicate_removed', 'event_id': dup['id']})
existing_ev = existing_list[0] if existing_list else None
if not existing_ev:
create_event(m, dry_run=args.dry_run)
created.append(m.state_key)
changes.append({'key': m.state_key, 'action': 'created',
'new_date': f'{m.cal_start.isoformat()}~{m.cal_end.isoformat()}'})
continue
existing_start, existing_end = event_date_range(existing_ev)
desired_start, desired_end = m.cal_start.isoformat(), m.cal_end.isoformat()
same_summary = (existing_ev.get('summary') or '').strip() == m.summary
same_desc = (existing_ev.get('description') or '').strip() == m.description.strip()
if existing_start != desired_start or existing_end != desired_end or not same_summary or not same_desc:
result = update_event(existing_ev['id'], m, dry_run=args.dry_run)
(recreated if result == 'recreated' else updated).append(m.state_key)
changes.append({'key': m.state_key, 'action': result,
'old_date': f'{existing_start}~{existing_end}',
'new_date': f'{desired_start}~{desired_end}'})
else:
unchanged += 1
# 연준 일정표에서 사라진 미래 회의는 캘린더에서도 삭제 (meetings 비면 existing이 빈 dict라 자동 스킵)
for key, existing_list in existing.items():
if key in keys:
continue
for stale in existing_list:
old_start, old_end = event_date_range(stale)
# 오늘 진행 중이거나 지난 회의는 parse 대상(오늘 이후)에서 빠져 있을 뿐이므로 삭제 금지
if old_start and old_start <= today.isoformat():
continue
delete_event(stale['id'], dry_run=args.dry_run)
deleted.append(key)
changes.append({'key': key, 'action': 'deleted', 'event_id': stale['id'],
'old_date': f'{old_start}~{old_end}'})
state['last_changes'] = changes
state['last_run_at'] = datetime.now(KST).isoformat()
if not args.dry_run:
save_state(state)
print(json.dumps({
'today': today.isoformat(), 'total_found': len(meetings),
'newly_created': len(created), 'updated': len(updated), 'recreated': len(recreated),
'deleted': len(deleted), 'duplicates_removed': len(duplicates_removed),
'unchanged': unchanged, 'dry_run': args.dry_run, 'changes': changes,
}, ensure_ascii=False))
if __name__ == '__main__':
main()
@@ -0,0 +1,449 @@
#!/usr/bin/env python3
"""투자원금(순입금) 집계 — 조회 전용.
투자원금 = 계좌 개설 이후 누적 입금 − 누적 출금. "내 돈 얼마 넣었나"이며,
`총 매입금액`(현재 보유종목 매입원가)이나 `예수금`(남은 현금)과 전혀 다른 값이다.
이 값이 있어야 `순자산 − 투자원금 = 진짜 총수익`(실현+미실현+배당)이 나온다.
키움 kt00018의 평가손익은 현재 보유분 미실현만 잡아 누적 실현손익·배당을 놓친다.
데이터원은 kt00016(일별계좌수익률상세현황)의 기간내총입금·총출금.
⚠️ kt00016은 **조회기간 1년 제한**이라 연도별 창으로 쪼개 누적한다.
캐시 `state/investment_principal.json`:
- frozen : 지난 연도 = 확정값. 한 번 적재 후 재조회 안 함 (0인 연도는 저장 생략)
- current: 올해 창(0101~오늘) 누적. 갱신 대상은 이것뿐 → 계좌당 1콜
- seen : 마지막 갱신 시점의 "당일 입출금" 스냅샷 — 이벤트 감지 기준
갱신은 별도 트리거 없이 behive_web 렌더 경로에서 이벤트로만 일어난다.
당일 입출금(이미 kt00015로 조회 중)이 seen과 다를 때만 올해 창을 재조회하므로
입출금 없는 평시에는 kt00016 호출이 0이다. 안전망으로 7일 초과 시 강제 갱신.
CLI: python3 scripts/investment_principal.py {bootstrap|refresh|show}
"""
from __future__ import annotations
import json
import os
import sys
import time
from contextlib import contextmanager
from datetime import datetime, timedelta, timezone
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
import kiwoom_client as kc
KST = timezone(timedelta(hours=9))
WORKSPACE = Path('/Users/snowoyh/.openclaw/agents/stock/workspace')
STATE_FILE = WORKSPACE / 'state' / 'investment_principal.json'
# 부트스트랩 하한 연도. 계좌 개설 전 기간은 kt00016이 에러 없이 전 필드 0을 주므로
# 넉넉히 잡아도 안전하다 (현재 최고(最古) 계좌는 2018년 개설).
FLOOR_YEAR = 2010
PACE_SEC = 0.35 # 연속 조회 rate limit 페이싱
STALE_DAYS = 7 # 이벤트 감지가 못 잡은 경우의 안전망
# 적요에 이 중 하나가 들어가면 '내가 넣은/뺀 돈'(원금 반영), 아니면 투자 성과(원금 무관).
# 원금 반영 : 이체입금(지급결제)·이체오픈뱅킹입금·이체입금·대체입금·소액이체인증입금
# ·ISA가입인증입금 / 이체출금·대체출금
# 원금 무관 : 배당금입금·수익분배금입금·예탁금이용료(이자)입금·공모주환불금입금
# ·쿠폰현금지급(국내)입금·단주매각대금입금·대여수수료입금
# / 공모불입출금·청약수수료출금
# ⚠️ 추측이 아니라 실증된 규칙 — 이 분류의 합이 kt00016 기간내총입금/총출금과
# 4계좌 18개 (계좌,연도) 구간 전부에서 오차 0으로 일치했다(2026-07-29).
# 새 적요가 등장하면 reconciled=False로 드러나므로 조용히 틀리지 않는다.
_PRINCIPAL_RMRK_KEYS = ('이체', '대체', '인증')
def is_principal_flow(rmrk: str) -> bool:
"""적요가 투자원금에 반영되는 외부 입출금인지. 배당·이자 등은 False."""
return any(k in (rmrk or '') for k in _PRINCIPAL_RMRK_KEYS)
# ---- 캐시 I/O ----
@contextmanager
def _lock():
"""STATE_FILE 직렬화 — behive_web _stock_notes_lock 과 동일 패턴, 별도 lock 파일."""
import fcntl
lock_path = STATE_FILE.with_suffix(STATE_FILE.suffix + '.lock')
lock_path.parent.mkdir(parents=True, exist_ok=True)
f = open(lock_path, 'a')
try:
fcntl.flock(f.fileno(), fcntl.LOCK_EX)
yield
finally:
try:
fcntl.flock(f.fileno(), fcntl.LOCK_UN)
finally:
f.close()
def _load() -> dict | None:
"""캐시 로드. 파일 없거나 깨졌으면 None (호출측이 '미집계'로 처리)."""
if not STATE_FILE.exists():
return None
try:
d = json.loads(STATE_FILE.read_text())
except Exception:
return None
if not isinstance(d, dict) or 'current' not in d:
return None
d.setdefault('frozen', {})
d.setdefault('seen', {})
d['current'].setdefault('labels', {})
return d
def _save(d: dict) -> None:
d['refreshed_at'] = datetime.now(KST).isoformat(timespec='seconds')
STATE_FILE.parent.mkdir(parents=True, exist_ok=True)
tmp = STATE_FILE.with_suffix('.json.tmp')
tmp.write_text(json.dumps(d, ensure_ascii=False, indent=2))
os.replace(tmp, STATE_FILE)
# ---- 조회 ----
def _today_str() -> str:
return datetime.now(KST).strftime('%Y%m%d')
def _this_year() -> int:
return datetime.now(KST).year
def _window(year: int) -> tuple[str, str]:
"""연도별 조회 창. 올해는 오늘까지, 지난 연도는 12/31까지 (1년 제한 내)."""
if year == _this_year():
return f'{year}0101', _today_str()
return f'{year}0101', f'{year}1231'
def _fetch_year(label: str, year: int) -> dict:
"""한 (계좌, 연도) 창의 합계(kt00016) + 입출금 행(kt00015). 2콜.
flows 행의 `pr`은 원금 반영 여부. 분류 합이 kt00016 합계와 맞는지 `rec`에 남겨
새 적요가 등장해 분류가 어긋나면 화면에서 드러나게 한다.
"""
fr, to = _window(year)
r = kc.get_period_return(label, fr, to)
time.sleep(PACE_SEC)
try:
raw = kc.get_cash_flow(label, strt_dt=fr, end_dt=to)
except Exception as e:
sys.stderr.write(f'cash flow {label} {year} 실패: {e}\n')
raw = None
flows = None if raw is None else [
{'d': f['date'], 'io': f['io_tp'], 'amt': f['amount'],
'rk': f['rmrk'], 'pr': is_principal_flow(f['rmrk'])}
for f in raw
]
rec = None
if flows is not None:
pin = sum(f['amt'] for f in flows if f['io'] == 'IN' and f['pr'])
pout = sum(f['amt'] for f in flows if f['io'] == 'OUT' and f['pr'])
rec = (pin == r['cash_in'] and pout == r['cash_out'])
return {
'in': r['cash_in'], 'out': r['cash_out'],
'qin': r['qty_in'], 'qout': r['qty_out'],
'nf': r['net_fr'], 'nt': r['net_to'], 'pl': r['eval_pl'],
'flows': flows, 'rec': rec,
}
def _is_empty(y: dict) -> bool:
"""계좌 개설 전(또는 전면 무활동) 연도 — 저장 생략 대상."""
return not any(y[k] for k in ('in', 'out', 'qin', 'qout', 'nf', 'nt', 'pl'))
def _labels(labels: list[str] | None = None) -> list[str]:
all_lb = [a['label'] for a in kc.list_accounts()]
if labels is None:
return all_lb
wanted = set(labels)
return [lb for lb in all_lb if lb in wanted]
def _flow_totals(cash_flow_by_label: dict) -> dict:
"""behive_web의 kt00015 당일 입출금 → {label: {'in': n, 'out': n}}."""
out: dict[str, dict] = {}
for lb, flows in (cash_flow_by_label or {}).items():
ci = sum(f['amount'] for f in (flows or []) if f.get('io_tp') == 'IN')
co = sum(f['amount'] for f in (flows or []) if f.get('io_tp') == 'OUT')
out[lb] = {'in': ci, 'out': co}
return out
# ---- 공개 API ----
def bootstrap(labels: list[str] | None = None) -> dict:
"""FLOOR_YEAR ~ 올해 전수 조회로 캐시를 새로 만든다 (계좌×연도, 4×17≈68콜 ≈ 25초).
조기 종료 없음 — 잔고가 0으로 비었던 휴면 연도가 중간에 끼어도 그 앞 연도를 놓치지 않는다.
⚠️ 1회성 CLI 전용. 렌더 경로에서 절대 호출하지 말 것.
"""
lbs = _labels(labels)
this_year = _this_year()
frozen: dict[str, dict] = {}
current: dict[str, dict] = {}
for lb in lbs:
frozen[lb] = {}
for year in range(FLOOR_YEAR, this_year + 1):
y = _fetch_year(lb, year)
time.sleep(PACE_SEC)
if year == this_year:
current[lb] = y
elif not _is_empty(y):
frozen[lb][year_key(year)] = y
with _lock():
d = _load() or {}
d['frozen'] = {**(d.get('frozen') or {}), **frozen}
cur = d.get('current') or {}
if cur.get('year') != this_year:
cur = {'year': this_year, 'labels': {}}
cur['labels'] = {**(cur.get('labels') or {}), **current}
d['current'] = cur
d['seen'] = {**(d.get('seen') or {}), **_seen_now(lbs)}
_save(d)
return _load()
def year_key(year: int) -> str:
return str(year)
def _seen_now(labels: list[str]) -> dict:
"""현재 당일 입출금을 seen 형식으로. (CLI refresh/bootstrap 용 — kt00015 계좌당 1콜)"""
today = datetime.now(KST).strftime('%Y-%m-%d')
totals = _flow_totals(kc.get_cash_flow_all(None, labels))
return {lb: {'date': today, **totals.get(lb, {'in': 0, 'out': 0})} for lb in labels}
def refresh_current(labels: list[str], cash_flow_by_label: dict | None = None) -> None:
"""올해 창만 재조회 (라벨당 1콜) + 연도 롤오버 시 작년을 확정값으로 이관.
cash_flow_by_label: 호출측이 이미 들고 있는 kt00015 당일 입출금.
None이면 직접 조회. seen 기록에 쓴다 — kt00016 호출 **전** 시점의 값이어야
그 사이 들어온 입금이 seen에 앞서 반영돼 영구 미갱신되는 일이 없다.
"""
lbs = _labels(labels)
if not lbs:
return
if cash_flow_by_label is None:
seen = _seen_now(lbs)
else:
today = datetime.now(KST).strftime('%Y-%m-%d')
totals = _flow_totals(cash_flow_by_label)
seen = {lb: {'date': today, **totals.get(lb, {'in': 0, 'out': 0})} for lb in lbs}
this_year = _this_year()
with _lock():
d = _load()
if d is None:
return # 부트스트랩 전 — 렌더 경로를 68콜로 막지 않는다
cur = d['current']
prev_year = cur.get('year')
# 연도 롤오버: current에 담긴 작년치는 to_dt가 12/31이 아니라 미완결이므로
# 전체 창(0101~1231)으로 다시 받아 확정 이관한다.
if prev_year and prev_year != this_year:
for lb in lbs:
y = _fetch_year(lb, prev_year)
time.sleep(PACE_SEC)
if not _is_empty(y):
d['frozen'].setdefault(lb, {})[year_key(prev_year)] = y
cur = {'year': this_year, 'labels': {}}
for lb in lbs:
cur['labels'][lb] = _fetch_year(lb, this_year)
time.sleep(PACE_SEC)
cur['year'] = this_year
d['current'] = cur
d['seen'].update(seen)
_save(d)
def needs_refresh(labels: list[str], cash_flow_by_label: dict) -> bool:
"""올해 창 재조회가 필요한지 판정 — 순수 캐시 읽기(키움 콜 0).
캐시가 없으면 False — 부트스트랩 미실행 상태에서 페이지 로드를 68콜로 막지 않는다.
"""
d = _load()
if d is None:
return False
if d['current'].get('year') != _this_year():
return True
today = datetime.now(KST).strftime('%Y-%m-%d')
totals = _flow_totals(cash_flow_by_label)
for lb in labels:
if lb not in totals:
continue # owner 부분 갱신 — 조회 안 된 계좌는 판단 보류
s = d['seen'].get(lb) or {}
base = s if s.get('date') == today else {'in': 0, 'out': 0}
if totals[lb]['in'] != base.get('in', 0) or totals[lb]['out'] != base.get('out', 0):
return True
ts = d.get('refreshed_at')
if not ts:
return True
try:
age = datetime.now(KST) - datetime.fromisoformat(ts)
except Exception:
return True
return age > timedelta(days=STALE_DAYS)
def get_principal(labels: list[str]) -> dict:
"""캐시만 읽어 누적 원금 산출 (키움 콜 0).
반환 principal이 None이면 '미집계' — 요청 라벨 중 부트스트랩 안 된 계좌가 있다는 뜻.
(0으로 떨어뜨리면 그 계좌 입금이 조용히 빠져 원금이 과소계상된다.)
qty_flow=True는 주식 입출고(타사대체) 이력 — 현금 기준 원금이 과소계상됨을 알림.
by_label은 계좌별 순입금 {label: 원} — 자세히보기 토스트용.
"""
miss = {'principal': None, 'cash_in': None, 'cash_out': None,
'qty_flow': False, 'by_label': {}}
d = _load()
if d is None:
return miss
cur = d['current']['labels']
total_in = total_out = 0
qty_flow = False
by_label: dict[str, int] = {}
for lb in labels:
if lb not in cur:
return miss
recs = list((d['frozen'].get(lb) or {}).values()) + [cur[lb]]
lb_in = lb_out = 0
for y in recs:
lb_in += y.get('in', 0)
lb_out += y.get('out', 0)
qty_flow = qty_flow or bool(y.get('qin') or y.get('qout'))
by_label[lb] = lb_in - lb_out
total_in += lb_in
total_out += lb_out
return {
'principal': total_in - total_out,
'cash_in': total_in,
'cash_out': total_out,
'qty_flow': qty_flow,
'by_label': by_label,
}
def get_flows(labels: list[str]) -> dict:
"""입출금 내역 (최신순) — 캐시만 읽는다 (키움 콜 0).
반환:
- rows: [{date, io('IN'|'OUT'), amount, rmrk, principal(bool), label}] 최신순
- other_in / other_out: 원금 무관 입출금 합계 (배당·이자 등)
- reconciled: 전 구간에서 적요 분류 합이 kt00016 합계와 일치했는지
False면 새 적요가 등장해 분류가 어긋났다는 신호
- available: 내역이 캐시에 있는지 (부트스트랩 전 or 조회 실패 시 False)
"""
d = _load()
if d is None:
return {'rows': [], 'other_in': 0, 'other_out': 0,
'reconciled': True, 'available': False}
cur = d['current']['labels']
rows: list[dict] = []
reconciled = True
available = False
for lb in labels:
recs = list((d['frozen'].get(lb) or {}).values())
if lb in cur:
recs.append(cur[lb])
for y in recs:
flows = y.get('flows')
if flows is None:
continue
available = True
if y.get('rec') is False:
reconciled = False
for f in flows:
rows.append({'date': f['d'], 'io': f['io'], 'amount': f['amt'],
'rmrk': f['rk'], 'principal': f['pr'], 'label': lb})
rows.sort(key=lambda r: (r['date'], r['label']), reverse=True)
return {
'rows': rows,
'other_in': sum(r['amount'] for r in rows if r['io'] == 'IN' and not r['principal']),
'other_out': sum(r['amount'] for r in rows if r['io'] == 'OUT' and not r['principal']),
'reconciled': reconciled,
'available': available,
}
# ---- CLI ----
def _show() -> int:
d = _load()
if d is None:
print(f'캐시 없음: {STATE_FILE}\n → python3 scripts/investment_principal.py bootstrap')
return 1
from stock_portfolio_report import derive_owner
print(f'갱신: {d.get("refreshed_at")} (올해 창 {d["current"].get("year")})\n')
lbs = list(d['current']['labels'].keys())
bad = 0
for lb in lbs:
years = sorted((d['frozen'].get(lb) or {}).items())
years.append((year_key(d['current']['year']), d['current']['labels'][lb]))
print(f'===== {lb} =====')
tin = tout = 0
for yk, y in years:
# 항등식: 순자산초 + 입금 − 출금 + 평가손익 = 순자산말
err = y['nf'] + y['in'] - y['out'] + y['pl'] - y['nt']
bad += 1 if err else 0
tin += y['in']
tout += y['out']
q = f' 입고 {y["qin"]:,} 출고 {y["qout"]:,}' if (y['qin'] or y['qout']) else ''
nf = len(y.get('flows') or []) if y.get('flows') is not None else None
rc = {True: '분류OK', False: '분류불일치!', None: '내역없음'}[y.get('rec')]
print(f' {yk}: 입금 {y["in"]:>12,} 출금 {y["out"]:>11,} '
f'순자산 {y["nf"]:>12,}{y["nt"]:>12,} 손익 {y["pl"]:>12,} '
f'항등식오차 {err:,} 내역 {nf if nf is not None else "-":>3}{rc}{q}')
print(f' >> 누적 입금 {tin:,} 출금 {tout:,} = 순입금 {tin - tout:,}\n')
print('항등식 검증:', '전 행 오차 0 ✅' if not bad else f'⚠️ 오차 있는 행 {bad}')
fl = get_flows(lbs)
print(f'적요 분류 검증: {"전 구간 일치 ✅" if fl["reconciled"] else "⚠️ 불일치 구간 있음 — 새 적요 확인 필요"}'
f' (내역 {len(fl["rows"])}행, 원금무관 입금 {fl["other_in"]:,}원 / 출금 {fl["other_out"]:,}원)')
# 라이브 교차검증 — 원금 대비 총수익 vs 실제 순자산
print('\n===== 원금 대비 총수익 (라이브 교차검증) =====')
owners: dict[str, list[str]] = {}
for lb in lbs:
owners.setdefault(derive_owner(lb), []).append(lb)
for owner, olbs in owners.items():
pr = get_principal(olbs)
net = 0
for lb in olbs:
net += sum(p['evlt_amt'] for p in kc.get_positions(lb)) + kc.get_balance(lb)['d2_entra']
p = pr['principal']
ret = net - p
warn = ' ⚠️ 주식 입출고 있음(원금 과소계상)' if pr['qty_flow'] else ''
print(f'[{owner}] 투자원금 {p:,}원 (입금 {pr["cash_in"]:,} 출금 {pr["cash_out"]:,}){warn}')
print(f' 순자산 {net:,}원 → 총수익 {ret:+,}원 ({ret / p * 100:+.2f}%)' if p else ' 원금 0')
return 0 if not bad else 1
def main(argv: list[str]) -> int:
cmd = argv[1] if len(argv) > 1 else 'show'
if cmd == 'bootstrap':
lbs = _labels()
n = len(lbs) * (_this_year() - FLOOR_YEAR + 1)
print(f'{len(lbs)}계좌 × {_this_year() - FLOOR_YEAR + 1}년 = {n}콜 (약 {n * PACE_SEC:.0f}초)...')
bootstrap()
print(f'완료 → {STATE_FILE}\n')
return _show()
if cmd == 'refresh':
refresh_current(_labels())
print(f'올해 창 갱신 완료 → {STATE_FILE}\n')
return _show()
if cmd == 'show':
return _show()
print(__doc__)
return 2
if __name__ == '__main__':
raise SystemExit(main(sys.argv))
@@ -39,6 +39,7 @@ ENDPOINT_RKINFO = '/api/dostk/rkinfo' # 순위정보 — ka10023 거래량급
TR_DEPOSIT = 'kt00001' # 예수금상세현황요청
TR_ACNT_EVAL = 'kt00004' # 계좌평가현황요청 (acnt_nm·brch_nm 포함)
TR_TRUST_TRADE = 'kt00015' # 위탁종합거래내역요청 (tp='1' 입출금 — 당일 추가입금/인출 추출용)
TR_ACNT_RETURN = 'kt00016' # 일별계좌수익률상세현황요청 (기간내총입금·총출금 — 투자원금 산출용)
TR_POSITIONS = 'kt00018' # 계좌평가잔고내역요청 (종목별 상세, 수수료·세금 포함)
TR_TRADE_DIARY = 'ka10170' # 당일매매일지요청 (round-trip·풀매도 포함, 잔고에 없는 거래도 잡힘)
TR_ORDER_EXEC = 'kt00007' # 계좌별주문체결내역상세 (주문번호·시각·체결가·체결수량 단위, REST/영웅문 출처 구분)
@@ -431,25 +432,39 @@ def get_trade_journal_all(base_dt: str | None = None, labels: list[str] | None =
return {a['label']: get_trade_journal(a['label'], base_dt) for a in accs}
def get_cash_flow(account_label: str, base_dt: str | None = None) -> list[dict]:
"""당일 입출금 내역 (kt00015 tp='1').
def get_cash_flow(account_label: str, base_dt: str | None = None,
strt_dt: str | None = None, end_dt: str | None = None) -> list[dict]:
"""입출금 내역 (kt00015 tp='1').
base_dt: YYYYMMDD (None이면 KST 오늘). 시작/종료 동일 → 그날치만.
strt_dt/end_dt: 둘 다 주면 기간 조회 (base_dt 무시).
⚠️ **조회기간 1년 제한** — 넘기면 `[2000](501058:조회기간은 1년 이내로만 가능합니다.)`.
다년치는 연도별로 쪼개 호출한다 (investment_principal.py 참조).
tp='1'(입출금)·gds_tp='0'(전체)로 매매·환전 등은 제외. KRW만 필터.
⚠️ tp='1' 입금에는 **배당금·예탁금이용료(이자)·수익분배금·공모주환불금·단주매각대금**이
섞여 들어온다. 이건 '내가 넣은 돈'이 아니므로 투자원금 합산에 그대로 쓰면 과대계상된다.
kt00016의 기간내총입금/총출금은 이걸 이미 제외한 순수 외부 이체액이다 (전 계좌·연도 실증).
적요 기준 분류는 `investment_principal.is_principal_flow`.
반환 행:
- date: 'YYYYMMDD' (trde_dt)
- time: 'HH:MM:SS' (proc_tm 앞 8자리)
- io_tp: 'IN' | 'OUT'
- amount: 거래금액 (원, 양수)
- signed: +amount (입금) / -amount (출금) — 합산으로 net cash flow 산출
- rmrk: 적요명 (예: '타사대체입금', '은행이체출금')
- rmrk: 적요명 (예: '이체입금(지급결제)', '배당금입금', '이체출금')
- balance: 거래 후 예수금잔고 (entra_remn)
"""
if base_dt is None:
base_dt = datetime.now(KST).strftime('%Y%m%d')
if strt_dt and end_dt:
fr, to = strt_dt, end_dt
else:
if base_dt is None:
base_dt = datetime.now(KST).strftime('%Y%m%d')
fr = to = base_dt
body = {
'strt_dt': base_dt,
'end_dt': base_dt,
'strt_dt': fr,
'end_dt': to,
'tp': '1',
'stk_cd': '',
'crnc_cd': '',
@@ -478,6 +493,7 @@ def get_cash_flow(account_label: str, base_dt: str | None = None) -> list[dict]:
continue
proc_tm = (it.get('proc_tm') or '').strip()
out.append({
'date': (it.get('trde_dt') or '').strip(),
'time': proc_tm[:8],
'io_tp': io_tp,
'amount': amount,
@@ -497,6 +513,38 @@ def get_cash_flow_all(base_dt: str | None = None, labels: list[str] | None = Non
return {a['label']: get_cash_flow(a['label'], base_dt) for a in accs}
def get_period_return(account_label: str, fr_dt: str, to_dt: str) -> dict:
"""기간 계좌수익률 상세 (kt00016) — 기간내 총입금·총출금 포함.
⚠️ **조회기간 1년 제한** — 넘기면 `[2000](505221:조회기간은 1년이내로만 가능합니다.)`.
전체기간 투자원금은 연도별 창으로 쪼개 누적해야 한다 (investment_principal.py 참조).
⚠️ 응답의 `invt_bsamt`는 "투자원금**평잔**"(기간 평균잔고)이라 누적 투자원금이 아니다 —
이름이 비슷해 오용하기 쉬우니 반환하지 않는다. 누적 원금은 cash_in cash_out.
계좌 개설 전 기간은 에러 없이 전 필드 0으로 응답한다.
항등식 `net_fr + cash_in cash_out + eval_pl == net_to` 가 성립 (자체 검증용).
반환:
- cash_in/cash_out: 기간내 총입금/총출금 (원)
- qty_in/qty_out: 기간내 총입고/총출고 (주식 대체 — 0이 아니면 현금 기준 원금이 과소계상)
- net_fr/net_to: 순자산액계 기초/기말
- eval_pl: 평가손익
"""
resp = _call(account_label, TR_ACNT_RETURN, {'fr_dt': fr_dt, 'to_dt': to_dt})
return {
'label': account_label,
'cash_in': _to_int(resp.get('termin_tot_trns')), # 기간내총입금
'cash_out': _to_int(resp.get('termin_tot_pymn')), # 기간내총출금
'qty_in': _to_int(resp.get('termin_tot_inq')), # 기간내총입고
'qty_out': _to_int(resp.get('termin_tot_outq')), # 기간내총출고
'net_fr': _to_int(resp.get('tot_amt_fr')), # 순자산액계_초
'net_to': _to_int(resp.get('tot_amt_to')), # 순자산액계_말
'eval_pl': _to_int(resp.get('evltv_prft')), # 평가손익
'raw': resp,
}
def get_order_executions(account_label: str, base_dt: str | None = None) -> list[dict]:
"""계좌별 주문체결내역 (kt00007) — 주문번호·시각 단위 행 리스트.
@@ -520,14 +520,34 @@ def _render_html_owner(idx: int, owner: str, d: dict, balances: dict, prev_key,
)
# behive_web _render_owner_kpi 와 동일한 순서·라벨로 통일.
# 1) 총평가 → 2) 총매입 → 3) 총평가손익 → 4) 당일평가손익 → 5) 예수금 → 6) 순자산 → 7) 보유 종목 → 8) 당일 매매
# '총'은 계좌 전체(현금 포함)일 때만: 총자산 = 평가금액 + 예수금.
# 총자산 → 매입금액 → 평가금액 → 평가손익 → 예수금 → [당일 입출금] → 보유종목/당일매매 → 당일 평가손익
held = [r for r in d['consolidated'] if not r.get('phantom')]
parts.append(kpi(' 평가금액', f'{d["total_value"]:,}'))
parts.append(kpi('매입금액', f'{d["total_cost"]:,}'))
parts.append(kpi('자산', f'{d["total_net"]:,}'))
parts.append(kpi('매입금액', f'{d["total_cost"]:,}'))
parts.append(kpi('평가금액', f'{d["total_value"]:,}'))
parts.append(kpi(
'평가손익',
'평가손익',
f'{_signed(d["total_profit"])} ({_signed_pct(d["total_profit_rate"])})'
))
parts.append(kpi('예수금', f'{d["deposit"]:,}'))
# 당일 입출금은 예수금 바로 아래 (현금 잔액 ↔ 그날 현금 이동)
cash_in = d.get('cash_in', 0)
cash_out = d.get('cash_out', 0)
if cash_in or cash_out:
net = cash_in - cash_out
nsign = '+' if net >= 0 else ''
ncolor = '#0a7' if net > 0 else ('#d33' if net < 0 else '#666')
# 한쪽만 있으면 순액과 같은 값이라 생략 (둘 다 있을 때만 쪼갠다)
detail = ''
if cash_in and cash_out:
detail = (f' <span style="color:#888;font-size:13px;">'
f'· 입금 {cash_in:,}원 · 출금 {cash_out:,}원</span>')
parts.append(kpi(
'당일 입출금',
f'<span style="color:{ncolor};">{nsign}{net:,}원</span>{detail}'
))
parts.append(kpi('보유종목/당일매매', f'{len(held)}개 / {len(d["traded_today"])}'))
day_pl_total = d.get('day_pl_total')
if day_pl_total is None:
if prev_key:
@@ -540,26 +560,6 @@ def _render_html_owner(idx: int, owner: str, d: dict, balances: dict, prev_key,
pct_html = f' ({_signed_pct(pct)})'
suffix = f' <span style="color:#888;font-size:13px;"{prev_key} 대비</span>' if prev_key else ''
parts.append(kpi('당일 평가손익', f'{_signed(day_pl_total)}{pct_html}{suffix}'))
parts.append(kpi('예수금', f'{d["deposit"]:,}'))
parts.append(kpi('순자산', f'{d["total_net"]:,}'))
cash_in = d.get('cash_in', 0)
cash_out = d.get('cash_out', 0)
if cash_in or cash_out:
net = cash_in - cash_out
nsign = '+' if net >= 0 else ''
ncolor = '#0a7' if net > 0 else ('#d33' if net < 0 else '#666')
detail_parts = []
if cash_in:
detail_parts.append(f'입금 {cash_in:,}')
if cash_out:
detail_parts.append(f'출금 {cash_out:,}')
detail = f' <span style="color:#888;font-size:13px;"{" · ".join(detail_parts)}</span>' if detail_parts else ''
parts.append(kpi(
'당일 입출금',
f'<span style="color:{ncolor};">{nsign}{net:,}원</span>{detail}'
))
parts.append(kpi('보유 종목', f'{len(held)}'))
parts.append(kpi('당일 매매', f'{len(d["traded_today"])}'))
realized_pl = d.get('realized_pl_total', 0)
realized_fees = d.get('realized_fees_total', 0)
if d.get('traded_today') and (realized_pl or realized_fees):
@@ -710,13 +710,29 @@ def _render_html_body(owner_data: dict, ordered: list, balances: dict, today_key
f'<td style="{S["kpi_value"]}">{value_html}</td></tr>'
)
# behive_web KPI 순서로 통일
parts.append(kpi(' 평가금액', f'{grand_value:,}'))
parts.append(kpi('매입금액', f'{grand_cost:,}'))
# behive_web KPI 순서·라벨로 통일 (블록 자체가 전체 합산이라 '총' 중복 접두 제거)
parts.append(kpi('자산', f'{grand_net:,}'))
parts.append(kpi('매입금액', f'{grand_cost:,}'))
parts.append(kpi('평가금액', f'{grand_value:,}'))
parts.append(kpi(
'평가손익',
'평가손익',
f'{_signed(grand_profit)} ({_signed_pct(grand_rate)})'
))
parts.append(kpi('예수금', f'{grand_deposit:,}'))
# 당일 입출금은 예수금 바로 아래
if grand_cash_in or grand_cash_out:
gn = grand_net_cash_flow
gsign = '+' if gn >= 0 else ''
gcolor = '#0a7' if gn > 0 else ('#d33' if gn < 0 else '#666')
# 한쪽만 있으면 순액과 같은 값이라 생략
gdetail = ''
if grand_cash_in and grand_cash_out:
gdetail = (f' <span style="color:#888;font-size:13px;">'
f'· 입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원</span>')
parts.append(kpi(
'당일 입출금',
f'<span style="color:{gcolor};">{gsign}{gn:,}원</span>{gdetail}'
))
if grand_day_pl_total is not None:
pct_html = ''
if grand_prev_net:
@@ -726,22 +742,6 @@ def _render_html_body(owner_data: dict, ordered: list, balances: dict, today_key
parts.append(kpi('당일 평가손익', f'{_signed(grand_day_pl_total)}{pct_html}{suffix}'))
elif prev_key:
parts.append(kpi('당일 평가손익', '<span style="color:#888;">전날 스냅샷 없음</span>'))
parts.append(kpi('총 예수금', f'{grand_deposit:,}'))
parts.append(kpi('총 순자산', f'{grand_net:,}'))
if grand_cash_in or grand_cash_out:
gn = grand_net_cash_flow
gsign = '+' if gn >= 0 else ''
gcolor = '#0a7' if gn > 0 else ('#d33' if gn < 0 else '#666')
gd = []
if grand_cash_in:
gd.append(f'입금 {grand_cash_in:,}')
if grand_cash_out:
gd.append(f'출금 {grand_cash_out:,}')
gdetail = f' <span style="color:#888;font-size:13px;"{" · ".join(gd)}</span>'
parts.append(kpi(
'당일 입출금',
f'<span style="color:{gcolor};">{gsign}{gn:,}원</span>{gdetail}'
))
grand_realized_pl = sum(d.get('realized_pl_total', 0) for d in owner_data.values())
grand_realized_fees = sum(d.get('realized_fees_total', 0) for d in owner_data.values())
if any(d.get('traded_today') for d in owner_data.values()) and (grand_realized_pl or grand_realized_fees):
@@ -1012,14 +1012,18 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]:
title = OWNER_LABELS.get(owner, f'{owner} 자산')
labels_disp = ' + '.join(d['labels'])
held = [r for r in d['consolidated'] if not r.get('phantom')]
# behive_web KPI 순서·라벨로 통일
# behive_web KPI 순서·라벨로 통일. 라벨은 표시폭 17칸 정렬(한글 2칸 기준).
lines += [
'==============================',
f"{idx}) {title} ({labels_disp})",
'==============================',
f' 평가금액 : {d["total_value"]:,}',
f'매입금액 : {d["total_cost"]:,}',
f'총 평가손익 : {d["total_profit"]:+,} ({d["total_profit_rate"]:+.2f}%)',
f'자산 : {d["total_net"]:,}',
f'매입금액 : {d["total_cost"]:,}',
f'평가금액 : {d["total_value"]:,}',
f'평가손익 : {d["total_profit"]:+,}원 ({d["total_profit_rate"]:+.2f}%)',
f'예수금 : {d["deposit"]:,}',
# '보유종목/당일매매'는 표시폭이 정확히 17칸이라 패딩 없이 콜론이 맞는다.
f'보유종목/당일매매: {len(held)}개 / {len(d["traded_today"])}',
]
day_pl = d.get('day_pl_total')
if day_pl is not None:
@@ -1029,10 +1033,6 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]:
lines.append(f'당일 평가손익 : {day_pl:+,}원 ({pct:+.2f}%){suffix}')
elif prev_key:
lines.append(f'당일 평가손익 : 전날 스냅샷 없음 ({prev_key})')
lines.append(f'예수금 : {d["deposit"]:,}')
lines.append(f'순자산 : {d["total_net"]:,}')
lines.append(f'보유 종목 : {len(held)}')
lines.append(f'당일 매매 : {len(d["traded_today"])}')
if d.get('traded_today') and (d.get('realized_pl_total', 0) or d.get('realized_fees_total', 0)):
fee = d.get('realized_fees_total', 0)
fee_part = f' (수수료·세금 {fee:,}원)' if fee else ''
@@ -1126,7 +1126,7 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]:
tg_lines = [f'📊 주식 리포트 | {today_key} 20:00']
tg_lines.append('')
tg_lines.append(f'평가 {grand_value:,}원 · 예수금 {grand_deposit:,}')
tg_lines.append(f'자산 {grand_net:,}')
tg_lines.append(f'자산 {grand_net:,}')
tg_lines.append(f'{grand_profit:+,}원 ({grand_rate:+.2f}%)')
if grand_day_pl_total is not None:
tg_lines.append(f'당일 평가손익 {grand_day_pl_total:+,}원 ({prev_key} 대비)')
@@ -1135,7 +1135,10 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]:
elif owner_data:
tg_lines.append('전날 이전 스냅샷 없음')
if grand_cash_in or grand_cash_out:
tg_lines.append(f'당일 입출금 {grand_net_cash_flow:+,}원 (입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원)')
# 한쪽만 있으면 순액과 같은 값이라 괄호 생략
_brk = (f' (입금 {grand_cash_in:,}원 · 출금 {grand_cash_out:,}원)'
if (grand_cash_in and grand_cash_out) else '')
tg_lines.append(f'당일 입출금 {grand_net_cash_flow:+,}{_brk}')
grand_realized_pl = sum(d.get('realized_pl_total', 0) for d in owner_data.values())
if any(d.get('traded_today') for d in owner_data.values()) and grand_realized_pl:
tg_lines.append(f'당일 실현 {grand_realized_pl:+,}')
@@ -1144,7 +1147,7 @@ def build_report(by_account: bool = False) -> tuple[str, str, str]:
for owner in ordered:
d = owner_data[owner]
title = OWNER_LABELS.get(owner, owner).replace(' 자산', '')
tg_lines.append(f'{title} 자산 {d["total_net"]:,}')
tg_lines.append(f'{title} 자산 {d["total_net"]:,}')
tg_lines.append(f' 평가 {d["total_value"]:,}원 · 예수금 {d["deposit"]:,}')
tg_lines.append(f' {d["total_profit"]:+,}원 ({d["total_profit_rate"]:+.2f}%)')
if d.get('day_pl_total') is not None:
@@ -92,3 +92,5 @@
{"date": "2026-07-27", "market": "KOSPI", "market_label": "코스피", "rise": 497, "upper": 0, "fall": 372, "lower": 2, "steady": 47, "adr": 132.89, "personal": 19788, "foreign": -28811, "institutional": 8595, "captured_at": "2026-07-27T21:00:02.567797+09:00"}
{"date": "2026-07-28", "market": "KOSDAQ", "market_label": "코스닥", "rise": 140, "upper": 11, "fall": 1557, "lower": 2, "steady": 38, "adr": 9.69, "personal": 480, "foreign": 860, "institutional": -1345, "captured_at": "2026-07-28T21:00:02.094342+09:00"}
{"date": "2026-07-28", "market": "KOSPI", "market_label": "코스피", "rise": 36, "upper": 3, "fall": 878, "lower": 2, "steady": 3, "adr": 4.43, "personal": 43152, "foreign": -45009, "institutional": 1830, "captured_at": "2026-07-28T21:00:02.094342+09:00"}
{"date": "2026-07-29", "market": "KOSDAQ", "market_label": "코스닥", "rise": 141, "upper": 4, "fall": 1554, "lower": 3, "steady": 35, "adr": 9.31, "personal": -4579, "foreign": 3082, "institutional": 1474, "captured_at": "2026-07-29T21:00:04.833116+09:00"}
{"date": "2026-07-29", "market": "KOSPI", "market_label": "코스피", "rise": 91, "upper": 1, "fall": 805, "lower": 1, "steady": 21, "adr": 11.41, "personal": -19701, "foreign": -12502, "institutional": 31769, "captured_at": "2026-07-29T21:00:04.833116+09:00"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
{
"cash": 17679082.919999994,
"cash": 23499630.964999992,
"initial": 100000000,
"positions": {
"010950": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"cur_price": 126900,
"tranches": 2,
"tranche_value": 5572914.42378125,
"last_add_price": 130800
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 83,
"entry_price": 132579.51807228915,
"entry_at": "2026-07-10T09:26:06.360780+09:00",
"stop": 119709,
"target": 171192,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5614905.905031251,
"last_add_price": 134300
},
"090850": {
"code": "090850",
"name": "현대이지웰",
@@ -55,12 +34,12 @@
"entry_at": "2026-07-14T09:40:04.963052+09:00",
"stop": 5498,
"target": 7383,
"peak": 6330,
"peak": 6380,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"cur_price": 5980,
"tranches": 2,
"tranche_value": 5505297.51634375,
"last_add_price": 6030
@@ -76,12 +55,12 @@
"entry_at": "2026-07-16T09:04:02.184863+09:00",
"stop": 305213,
"target": 472619,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5640114.3750312505,
"last_add_price": 353000
@@ -102,7 +81,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 5411911.7463125,
"last_add_price": 91400
@@ -113,51 +92,30 @@
"sources": [
"auto"
],
"qty": 292,
"entry_price": 18950,
"qty": 584,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.270573+09:00",
"stop": 17760,
"target": 22520,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5547990.7530625,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 306,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.035446+09:00",
"stop": 10340,
"target": 21580,
"peak": 13730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"tranches": 1,
"tranche_value": 4036164.4997545374,
"last_add_price": 13150
}
},
"realized_pnl": -18162324.734500013,
"closed_trades": 17,
"realized_pnl": -21837800.879500017,
"closed_trades": 20,
"wins": 0,
"peak_equity": 100102462.48,
"max_drawdown": 0.1886646850847781,
"max_drawdown": 0.22555800282646568,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"298040": "2026-06-24",
"403870": "2026-07-07",
@@ -166,8 +124,9 @@
"214450": "2026-07-15",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-29"
},
"created_at": "2026-06-11T09:00:01.943184+09:00",
"updated_at": "2026-07-28T15:28:00.972299+09:00"
"updated_at": "2026-07-29T15:28:01.415294+09:00"
}
@@ -53,3 +53,10 @@
{"ts": "2026-07-27T09:10:00.979478+09:00", "side": "SELL", "code": "024060", "name": "흥구석유", "price": 12030, "qty": 690, "proceeds": 8284514, "entry_price": 14585, "pnl": -1780876, "pnl_pct": -17.52, "hold_from": "2026-07-23T10:30:02.401758+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "12,081 (현재 12,030)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,097"}, {"label": "추세(10일선)", "ok": false, "detail": "12,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -85 · 기 +2"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-27T09:12:01.035449+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 13150, "qty": 306, "cost": 4024504, "path": "pullback", "reason": "눌림목 지정가 13,180 도달", "stop": 10340, "target": 21580, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "13,150 vs 12,888"}, {"label": "정배열(5>10)", "ok": true, "detail": "14,378 / 12,888"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "14,378 / 13,268"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+1.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +27 · 기 +15 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.46% (환산) vs 평균 1.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 15,870"}, {"label": "거래량 급증", "ok": false, "detail": "274,967 (환산) vs 평균 882,736"}, {"label": "회전율 급증", "ok": false, "detail": "0.46% (환산) vs 평균 1.47%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 13,180 (현재 13,150)"}]}
{"ts": "2026-07-28T11:22:00.688753+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 1421, "proceeds": 9402859, "entry_price": 7684, "pnl": -1517249, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:05.306004+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:01.303424+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 654, "cost": 4277802, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:03.681936+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 292, "cost": 5534230, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:04.035867+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 637, "cost": 4274911, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:04.447212+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 317, "cost": 3585808, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 21580, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,580"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T10:52:02.292514+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 623, "proceeds": 6429258, "entry_price": 12214, "pnl": -1181053, "pnl_pct": -15.34, "hold_from": "2026-07-27T09:12:01.035446+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,835"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.628867+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 83, "proceeds": 9874307, "entry_price": 132580, "pnl": -1131443, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.360780+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,709 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,192"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.383429+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 1291, "proceeds": 7189733, "entry_price": 6624, "pnl": -1362980, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:01.303420+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,28 +1,7 @@
{
"cash": 57810594.730500005,
"cash": 67379374.54150002,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 134409.83606557376,
"entry_at": "2026-07-09T09:36:03.447931+09:00",
"stop": 118954,
"target": 157594,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4156565.5467727734,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.289321+09:00",
"stop": 305399,
"target": 410027,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3936003.3225085386,
"last_add_price": 353000
@@ -60,61 +39,40 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3844545.2388675264,
"last_add_price": 90900
},
"030000": {
"code": "030000",
"name": "제일기획",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 310,
"entry_price": 18950,
"entry_at": "2026-07-24T10:02:04.389258+09:00",
"stop": 17760,
"target": 20735,
"peak": 19300,
"qty": 42,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.432671+09:00",
"stop": 113016,
"target": 138976,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 5889355.599625001,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 164,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.497849+09:00",
"stop": 10340,
"target": 17365,
"peak": 13730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"tranches": 1,
"tranche_value": 2169981.4975838973,
"last_add_price": 13150
"tranche_value": 5296043.025056097,
"last_add_price": 123400
}
},
"realized_pnl": -10704683.26950001,
"closed_trades": 17,
"wins": 0,
"realized_pnl": -12184860.553500012,
"closed_trades": 22,
"wins": 1,
"peak_equity": 100172467.23000002,
"max_drawdown": 0.11233396611529192,
"max_drawdown": 0.12578399072042104,
"last_exit": {
"030000": "2026-07-15",
"030000": "2026-07-29",
"086790": "2026-07-28",
"403870": "2026-07-07",
"240810": "2026-07-24",
@@ -122,9 +80,12 @@
"093370": "2026-07-20",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-11T09:00:01.944232+09:00",
"updated_at": "2026-07-28T15:28:01.017007+09:00"
"updated_at": "2026-07-29T15:28:01.457829+09:00"
}
@@ -48,3 +48,12 @@
{"ts": "2026-07-28T11:22:00.740360+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 823, "proceeds": 5445850, "entry_price": 7684, "pnl": -878909, "pnl_pct": -13.72, "hold_from": "2026-07-27T09:02:06.217881+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T12:56:02.869289+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 45, "proceeds": 5272698, "entry_price": 127900, "pnl": -483665, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.372126+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,283"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]}
{"ts": "2026-07-28T13:20:03.820316+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 71, "proceeds": 8772660, "entry_price": 137176, "pnl": -968301, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.326778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,147"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.215048+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 357, "cost": 2335130, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:08.685814+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134410, "pnl": -370927, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.447931+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,954 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,594"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:08.686031+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 191, "cost": 2160534, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:26:01.888464+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 310, "proceeds": 5859951, "entry_price": 18950, "pnl": -15430, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.389258+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.888676+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 357, "proceeds": 2355168, "entry_price": 6540, "pnl": 20038, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.215046+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.375105+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 848, "cost": 5419533, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.432673+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.342370+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 355, "proceeds": 3663542, "entry_price": 12160, "pnl": -653915, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.497849+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,890"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.579933+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 848, "proceeds": 4959590, "entry_price": 6390, "pnl": -459943, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.375104+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 42770327.25550006,
"cash": 60476093.16450006,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 124176.4705882353,
"entry_at": "2026-07-02T10:18:03.827419+09:00",
"stop": 111006,
"target": 143933,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5368206.728356878,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.450092+09:00",
"stop": 118952,
"target": 157593,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4089582.9464364387,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.291895+09:00",
"stop": 305399,
"target": 410027,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3962363.617644489,
"last_add_price": 353000
@@ -81,94 +39,54 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3892203.318086031,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 12,
"entry_price": 155500,
"entry_at": "2026-07-24T09:00:05.530369+09:00",
"stop": 117686,
"target": 212221,
"peak": 155500,
"qty": 93,
"entry_price": 119186.02150537634,
"entry_at": "2026-07-29T09:02:02.218181+09:00",
"stop": 111200,
"target": 131165,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,093 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 1946096.456735668,
"last_add_price": 155500
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 312,
"entry_price": 18950,
"entry_at": "2026-07-24T10:02:04.391524+09:00",
"stop": 17760,
"target": 20735,
"peak": 19300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5927262.437968753,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 770,
"entry_price": 6936.25974025974,
"entry_at": "2026-07-28T09:00:15.725812+09:00",
"stop": 5741,
"target": 8729,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 2676539.5535729183,
"last_add_price": 7100
"tranche_value": 5549046.703468754,
"last_add_price": 120500
}
},
"realized_pnl": -10280111.366500013,
"closed_trades": 21,
"realized_pnl": -13097543.475500017,
"closed_trades": 27,
"wins": 2,
"peak_equity": 101529111.72700004,
"max_drawdown": 0.12852160576945038,
"max_drawdown": 0.1463739641735473,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"030000": "2026-07-29",
"086790": "2026-07-29",
"403870": "2026-07-07",
"095610": "2026-07-23",
"095610": "2026-07-29",
"093370": "2026-07-20",
"240810": "2026-07-24",
"214450": "2026-07-06",
"034730": "2026-07-07",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-11T09:00:01.944251+09:00",
"updated_at": "2026-07-28T15:28:01.018708+09:00"
"updated_at": "2026-07-29T15:28:01.459421+09:00"
}
@@ -64,3 +64,13 @@
{"ts": "2026-07-28T09:00:15.725820+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 394, "cost": 2671721, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 8509, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.736195+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 376, "cost": 2670000, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.763925+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 311, "proceeds": 3467096, "entry_price": 14266, "pnl": -970340, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.417997+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.218183+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 47, "cost": 5542131, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.458945+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 46, "cost": 5543831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:08.688483+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 212221, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]}
{"ts": "2026-07-29T09:24:08.688690+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.450092+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,593"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.891082+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 312, "proceeds": 5897757, "entry_price": 18950, "pnl": -15530, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.391524+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.377044+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 850, "cost": 5432315, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:18:05.366579+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:05.530369+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 192,006"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.681905+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.827419+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,933"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:06:06.472442+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 770, "proceeds": 4372756, "entry_price": 6936, "pnl": -968965, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:15.725812+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.581955+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 850, "proceeds": 4971287, "entry_price": 6390, "pnl": -461028, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.377043+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 29178207.098000046,
"cash": 26011542.238000043,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 77,
"entry_price": 134418.18181818182,
"entry_at": "2026-07-09T09:36:03.452341+09:00",
"stop": 122826,
"target": 157603,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5212031.062678178,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.164331+09:00",
"stop": 318434,
"target": 413243,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 4980582.661409654,
"last_add_price": 356000
@@ -55,12 +34,12 @@
"entry_at": "2026-07-22T09:04:01.813457+09:00",
"stop": 92100,
"target": 119144,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5575262.741000003,
"last_add_price": 103100
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4849662.714601921,
"last_add_price": 90900
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
"qty": 289,
"entry_price": 19100,
"qty": 581,
"entry_price": 19024.61273666093,
"entry_at": "2026-07-27T09:02:06.223075+09:00",
"stop": 18023,
"target": 21254,
"peak": 19300,
"stop": 18070,
"target": 20933,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5535494.525500003,
"last_add_price": 19100
"last_add_price": 18950
},
"218150": {
"code": "218150",
@@ -113,48 +92,48 @@
"sources": [
"interest"
],
"qty": 1218,
"entry_price": 2130,
"qty": 2548,
"entry_price": 2036.565934065934,
"entry_at": "2026-07-27T14:20:01.056080+09:00",
"stop": 1775,
"target": 2840,
"peak": 2235,
"target": 2720,
"peak": 2450,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 2,135 도달",
"cur_price": 1941,
"tranches": 1,
"cur_price": 1805,
"tranches": 2,
"tranche_value": 2595536.5029300014,
"last_add_price": 2130
"last_add_price": 1951
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 968,
"entry_price": 6936.363636363636,
"entry_at": "2026-07-28T09:00:15.829228+09:00",
"stop": 6040,
"target": 8729,
"peak": 7780,
"qty": 87,
"entry_price": 119185.05747126437,
"entry_at": "2026-07-29T09:02:02.221426+09:00",
"stop": 111408,
"target": 134739,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 3360019.0177395856,
"last_add_price": 7100
"tranche_value": 5213821.568625003,
"last_add_price": 120500
}
},
"realized_pnl": -15480552.96100002,
"closed_trades": 35,
"realized_pnl": -17214272.911500026,
"closed_trades": 38,
"wins": 3,
"peak_equity": 101695667.93550003,
"max_drawdown": 0.18637618713042167,
"max_drawdown": 0.19995099211499182,
"last_exit": {
"030000": "2026-07-24",
"035420": "2026-06-23",
@@ -169,9 +148,11 @@
"319660": "2026-07-23",
"105560": "2026-07-20",
"086790": "2026-07-21",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-11T09:00:01.944270+09:00",
"updated_at": "2026-07-28T15:28:01.020512+09:00"
"updated_at": "2026-07-29T15:28:01.461183+09:00"
}
@@ -99,3 +99,11 @@
{"ts": "2026-07-28T09:00:15.829236+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 495, "cost": 3356603, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5916, "target": 8509, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:02:04.745721+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 388, "proceeds": 4615941, "entry_price": 14266, "pnl": -920209, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.419863+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T09:10:01.738088+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 473, "cost": 3358804, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-29T09:02:02.221428+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.460893+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:08.691208+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 292, "cost": 5534230, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 21254, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,254"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:08.691404+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.452341+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:09.102125+09:00", "side": "BUY", "code": "218150", "name": "미래생명자원", "price": 1951, "qty": 1330, "cost": 2595219, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1775, "target": 2840, "signals": [{"label": "손절선", "ok": true, "detail": "1,775 (현재 2,450)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 2,840"}, {"label": "추세(20일선)", "ok": true, "detail": "2,005"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +40 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,287"}]}
{"ts": "2026-07-29T09:28:01.378937+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 819, "cost": 5234195, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:42:05.407176+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 819, "proceeds": 4888070, "entry_price": 6390, "pnl": -346125, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.378936+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.419939+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 968, "proceeds": 5796674, "entry_price": 6936, "pnl": -918733, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:15.829228+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 32464453.122,
"cash": 42397561.0635,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 89,
"entry_price": 124177.52808988764,
"entry_at": "2026-07-02T10:18:03.834926+09:00",
"stop": 114299,
"target": 143934,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5613307.207924683,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 79,
"entry_price": 134418.98734177215,
"entry_at": "2026-07-09T09:36:03.454533+09:00",
"stop": 122827,
"target": 157603,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5344399.843888248,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.166187+09:00",
"stop": 318647,
"target": 413456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5156172.079657566,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 5078672.507755172,
"last_add_price": 90900
@@ -92,50 +50,50 @@
"sources": [
"auto"
],
"qty": 306,
"entry_price": 18950,
"qty": 612,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.395801+09:00",
"stop": 17843,
"target": 21164,
"peak": 19300,
"stop": 17996,
"target": 20858,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5806232.125812501,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 997,
"entry_price": 6936.308926780341,
"entry_at": "2026-07-28T09:00:15.935337+09:00",
"stop": 6040,
"target": 8729,
"peak": 7780,
"qty": 89,
"entry_price": 119185.39325842696,
"entry_at": "2026-07-29T09:02:02.224637+09:00",
"stop": 111408,
"target": 134740,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 3464111.1814802084,
"last_add_price": 7100
"tranche_value": 5368293.320125001,
"last_add_price": 120500
}
},
"realized_pnl": -13308414.02800002,
"closed_trades": 27,
"realized_pnl": -15557333.116500024,
"closed_trades": 31,
"wins": 2,
"peak_equity": 101690998.13850003,
"max_drawdown": 0.15881686001846382,
"max_drawdown": 0.17426239686294243,
"last_exit": {
"086790": "2026-06-26",
"086790": "2026-07-29",
"030000": "2026-07-16",
"403870": "2026-07-02",
"095610": "2026-07-28",
@@ -145,9 +103,11 @@
"214450": "2026-07-14",
"055550": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-11T09:00:01.944290+09:00",
"updated_at": "2026-07-28T15:28:01.022171+09:00"
"updated_at": "2026-07-29T15:28:01.462794+09:00"
}
@@ -77,3 +77,11 @@
{"ts": "2026-07-28T09:02:04.747643+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 406, "proceeds": 4830083, "entry_price": 14266, "pnl": -962966, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.421714+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,769"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T09:04:02.736929+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 16, "proceeds": 1967356, "entry_price": 155500, "pnl": -521017, "pnl_pct": -20.77, "hold_from": "2026-07-24T09:00:05.734608+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "127,139 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": false, "detail": "149,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 166,050"}]}
{"ts": "2026-07-28T09:10:01.739939+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 487, "cost": 3458219, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-29T09:02:02.224639+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.462967+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:09.111290+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 306, "cost": 5799570, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17843, "target": 21164, "signals": [{"label": "손절선", "ok": true, "detail": "17,843 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,164"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:09.112024+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134419, "pnl": -481104, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.454533+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,827 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.380944+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 843, "cost": 5387578, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:42:05.409278+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 843, "proceeds": 5031310, "entry_price": 6390, "pnl": -356268, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.380943+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,551"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.421952+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 997, "proceeds": 5970335, "entry_price": 6936, "pnl": -946202, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:15.935337+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,246"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.685681+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 89, "proceeds": 10588113, "entry_price": 124178, "pnl": -465345, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.834926+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,299 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,934"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 8209187.289499967,
"cash": 38672694.80499996,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 106,
"entry_price": 120162.2641509434,
"entry_at": "2026-07-01T09:46:03.059028+09:00",
"stop": 111000,
"target": 147649,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,286 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 6390950.2104375,
"last_add_price": 122200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 77,
"entry_price": 134570.12987012987,
"entry_at": "2026-07-09T09:10:01.824472+09:00",
"stop": 119114,
"target": 180939,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5286025.184468749,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.168413+09:00",
"stop": 307915,
"target": 476463,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5184250.1290937485,
"last_add_price": 356000
@@ -76,88 +34,67 @@
"entry_at": "2026-07-22T09:04:01.817053+09:00",
"stop": 92100,
"target": 128147,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5241897.148781248,
"last_add_price": 103100
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 105,
"entry_price": 95485.71428571429,
"entry_at": "2026-07-24T09:26:01.006439+09:00",
"stop": 83578,
"target": 131209,
"peak": 99800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 5056890.1458749985,
"last_add_price": 97000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 263,
"entry_price": 19100,
"qty": 269,
"entry_price": 19096.654275092937,
"entry_at": "2026-07-27T09:02:06.227944+09:00",
"stop": 17760,
"target": 23120,
"peak": 19300,
"stop": 17824,
"target": 22913,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5024795.592812498,
"last_add_price": 19100
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 1323,
"entry_price": 6936.250944822374,
"entry_at": "2026-07-28T09:00:16.050865+09:00",
"stop": 5741,
"target": 10522,
"peak": 7780,
"qty": 68,
"entry_price": 119008.82352941176,
"entry_at": "2026-07-29T09:02:02.227528+09:00",
"stop": 111200,
"target": 142435,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 4592654.149239581,
"last_add_price": 7100
"tranche_value": 4675255.455593748,
"last_add_price": 120500
}
},
"realized_pnl": -23990684.216500018,
"closed_trades": 26,
"realized_pnl": -27627751.02000002,
"closed_trades": 31,
"wins": 1,
"peak_equity": 103066363.367,
"max_drawdown": 0.2826077793565198,
"max_drawdown": 0.2973110459024045,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"093370": "2026-07-20",
@@ -170,8 +107,12 @@
"105560": "2026-07-20",
"055550": "2026-07-21",
"095610": "2026-07-28",
"252990": "2026-07-28"
"252990": "2026-07-28",
"010950": "2026-07-29",
"078930": "2026-07-29",
"003680": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582771+09:00",
"updated_at": "2026-07-28T15:28:01.023811+09:00"
"updated_at": "2026-07-29T15:28:01.464455+09:00"
}
@@ -77,3 +77,12 @@
{"ts": "2026-07-28T09:00:16.050874+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 677, "cost": 4590749, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 10237, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.741799+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 646, "cost": 4587288, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 10237, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,237"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.769455+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 541, "proceeds": 6031186, "entry_price": 14266, "pnl": -1687881, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.423676+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,395"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.227530+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 39, "cost": 4598790, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.464886+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 29, "cost": 3495024, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:09.118714+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 6, "cost": 113717, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 23120, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,120"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:09.964903+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134570, "pnl": -480564, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.824472+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,114 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,939"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:09.966514+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 105, "proceeds": 9190543, "entry_price": 95486, "pnl": -836960, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.006439+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,578 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,209"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.382783+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 736, "cost": 4703745, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T13:06:06.514247+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 1323, "proceeds": 7513191, "entry_price": 6936, "pnl": -1664846, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:16.050865+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,522"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:30:01.445481+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 106, "proceeds": 12483609, "entry_price": 120162, "pnl": -255501, "pnl_pct": -1.8, "hold_from": "2026-07-01T09:46:03.059028+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,649"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.587859+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 736, "proceeds": 4304550, "entry_price": 6390, "pnl": -399196, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.382782+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 28728753.204499956,
"cash": 38090320.14199995,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 81,
"entry_price": 134571.6049382716,
"entry_at": "2026-07-09T09:10:01.826441+09:00",
"stop": 119115,
"target": 157756,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5518075.13775,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 40,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.172929+09:00",
"stop": 120243,
"target": 152385,
"peak": 134700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 1,
"tranche_value": 5436101.333343748,
"last_add_price": 133100
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.170285+09:00",
"stop": 308113,
"target": 413456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5435113.820843748,
"last_add_price": 356000
@@ -76,67 +34,67 @@
"entry_at": "2026-07-22T09:04:01.818826+09:00",
"stop": 92100,
"target": 114635,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5477452.925531248,
"last_add_price": 103100
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 112,
"entry_price": 95473.21428571429,
"entry_at": "2026-07-24T09:26:01.008331+09:00",
"stop": 83565,
"target": 113335,
"peak": 99800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 5369515.318718748,
"last_add_price": 97000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 280,
"entry_price": 19100,
"qty": 562,
"entry_price": 19024.73309608541,
"entry_at": "2026-07-27T09:02:06.230469+09:00",
"stop": 17760,
"target": 21110,
"peak": 19300,
"target": 20922,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5357608.233093748,
"last_add_price": 19100
"last_add_price": 18950
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 83,
"entry_price": 119184.3373493976,
"entry_at": "2026-07-29T09:02:02.230500+09:00",
"stop": 111200,
"target": 131161,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 5057738.410843747,
"last_add_price": 120500
}
},
"realized_pnl": -17570092.83050002,
"closed_trades": 30,
"wins": 4,
"realized_pnl": -19891378.058000024,
"closed_trades": 35,
"wins": 5,
"peak_equity": 103066363.367,
"max_drawdown": 0.2179538447719454,
"max_drawdown": 0.2238488817622051,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"095610": "2026-07-28",
@@ -149,8 +107,12 @@
"003490": "2026-07-09",
"105560": "2026-07-20",
"055550": "2026-07-20",
"252990": "2026-07-28"
"252990": "2026-07-28",
"010950": "2026-07-29",
"078930": "2026-07-29",
"003680": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582787+09:00",
"updated_at": "2026-07-28T15:28:01.025467+09:00"
"updated_at": "2026-07-29T15:28:01.466086+09:00"
}
@@ -83,3 +83,13 @@
{"ts": "2026-07-27T09:02:06.230471+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19100, "qty": 280, "cost": 5348802, "path": "pullback", "reason": "눌림목 지정가 20,032 도달", "stop": 17760, "target": 21110, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "19,070 vs 18,858"}, {"label": "정배열(5>20)", "ok": true, "detail": "19,600 / 18,858"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,600 / 19,360"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+16.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +101 · 기 -3 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+33%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "146,760 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "50"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 20,032 (현재 19,070)"}]}
{"ts": "2026-07-28T10:08:02.771329+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 570, "proceeds": 6354485, "entry_price": 14266, "pnl": -1778235, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.425549+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:34:01.972452+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 22, "proceeds": 2641439, "entry_price": 158100, "pnl": -837283, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:00.996717+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]}
{"ts": "2026-07-29T09:02:02.230260+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 651, "cost": 4258179, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]}
{"ts": "2026-07-29T09:02:02.230501+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 42, "cost": 4952543, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.466782+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 41, "cost": 4941241, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:09.977728+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 282, "cost": 5344702, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21110, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,110"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:09.978654+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 81, "proceeds": 10396288, "entry_price": 134572, "pnl": -505647, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.826441+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,115 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,756"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:09.979284+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 112, "proceeds": 9803246, "entry_price": 95473, "pnl": -891358, "pnl_pct": -8.14, "hold_from": "2026-07-24T09:26:01.008331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,565 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,335"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.900494+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 651, "proceeds": 4294719, "entry_price": 6540, "pnl": 36540, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.230258+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.384508+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 794, "cost": 5074421, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T11:54:01.475203+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 120100, "qty": 40, "proceeds": 4794632, "entry_price": 133100, "pnl": -530166, "pnl_pct": -9.77, "hold_from": "2026-07-21T10:08:04.172929+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,243 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,385"}, {"label": "추세(20일선)", "ok": true, "detail": "118,250"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -13 · 기 -68"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,414"}]}
{"ts": "2026-07-29T13:34:03.589780+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 794, "proceeds": 4643767, "entry_price": 6390, "pnl": -430654, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.384507+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 17551883.526499964,
"cash": 34460901.99899996,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 79,
"entry_price": 134570.88607594935,
"entry_at": "2026-07-09T09:10:01.828358+09:00",
"stop": 119115,
"target": 165484,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5389478.369468749,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 133100,
"entry_at": "2026-07-21T10:08:04.174962+09:00",
"stop": 120243,
"target": 158813,
"peak": 134700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 1,
"tranche_value": 5262640.649406249,
"last_add_price": 133100
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.172122+09:00",
"stop": 307915,
"target": 434326,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5274205.950343749,
"last_add_price": 356000
@@ -76,88 +34,67 @@
"entry_at": "2026-07-22T09:04:01.820564+09:00",
"stop": 92100,
"target": 119138,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5328934.220031248,
"last_add_price": 103100
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 107,
"entry_price": 95485.98130841121,
"entry_at": "2026-07-24T09:26:01.010230+09:00",
"stop": 83578,
"target": 119302,
"peak": 99800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 5158509.961968748,
"last_add_price": 97000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 268,
"entry_price": 19100,
"qty": 538,
"entry_price": 19024.721189591077,
"entry_at": "2026-07-27T09:02:06.232736+09:00",
"stop": 17760,
"target": 21780,
"peak": 19300,
"target": 21554,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5136044.188124998,
"last_add_price": 19100
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 1351,
"entry_price": 6936.328645447817,
"entry_at": "2026-07-28T09:00:16.264480+09:00",
"stop": 5741,
"target": 9327,
"peak": 7780,
"qty": 79,
"entry_price": 119183.54430379746,
"entry_at": "2026-07-29T09:02:02.233197+09:00",
"stop": 111200,
"target": 135151,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 4690202.7646562485,
"last_add_price": 7100
"tranche_value": 4798325.220406247,
"last_add_price": 120500
}
},
"realized_pnl": -21242957.07650003,
"closed_trades": 27,
"realized_pnl": -25215050.30100003,
"closed_trades": 32,
"wins": 2,
"peak_equity": 103066363.367,
"max_drawdown": 0.26436733528161105,
"max_drawdown": 0.2753482754499373,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"093370": "2026-07-20",
@@ -170,8 +107,12 @@
"105560": "2026-07-20",
"055550": "2026-07-21",
"095610": "2026-07-28",
"252990": "2026-07-28"
"252990": "2026-07-28",
"010950": "2026-07-29",
"078930": "2026-07-29",
"003680": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582803+09:00",
"updated_at": "2026-07-28T15:28:01.027089+09:00"
"updated_at": "2026-07-29T15:28:01.467725+09:00"
}
@@ -78,3 +78,12 @@
{"ts": "2026-07-28T09:00:16.264486+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 691, "cost": 4685683, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 9085, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.745416+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 660, "cost": 4686703, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.773145+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 551, "proceeds": 6142668, "entry_price": 14266, "pnl": -1719121, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.427295+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.233198+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 40, "cost": 4716707, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.468572+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 39, "cost": 4700205, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:09.985527+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 270, "cost": 5117267, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:09.986194+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 79, "proceeds": 10139589, "entry_price": 134571, "pnl": -493105, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.828358+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,115 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,484"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:09.986674+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 107, "proceeds": 9365601, "entry_price": 95486, "pnl": -852931, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.010230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,578 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 119,302"}, {"label": "추세(20일선)", "ok": true, "detail": "74,040"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.386230+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 754, "cost": 4818783, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T11:54:01.477218+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 120100, "qty": 39, "proceeds": 4674766, "entry_price": 133100, "pnl": -516912, "pnl_pct": -9.77, "hold_from": "2026-07-21T10:08:04.174962+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,243 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,813"}, {"label": "추세(20일선)", "ok": true, "detail": "118,250"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -13 · 기 -68"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,414"}]}
{"ts": "2026-07-29T13:06:06.518446+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 1351, "proceeds": 7672200, "entry_price": 6936, "pnl": -1700186, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:16.264480+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(20일선)", "ok": true, "detail": "4,787"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.591638+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 754, "proceeds": 4409824, "entry_price": 6390, "pnl": -408959, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.386229+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 31415156.02650003,
"cash": 39467772.84450003,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 77,
"entry_price": 134570.12987012987,
"entry_at": "2026-07-09T09:10:01.830227+09:00",
"stop": 122978,
"target": 157755,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5210031.291334455,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.173991+09:00",
"stop": 318434,
"target": 413243,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 4947379.149752503,
"last_add_price": 356000
@@ -55,85 +34,64 @@
"entry_at": "2026-07-22T09:04:01.822292+09:00",
"stop": 92100,
"target": 119142,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5540629.633968752,
"last_add_price": 103100
},
"078930": {
"code": "078930",
"name": "GS",
"sources": [
"auto"
],
"qty": 97,
"entry_price": 95484.53608247422,
"entry_at": "2026-07-24T09:26:01.012056+09:00",
"stop": 86554,
"target": 113346,
"peak": 99800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 4684856.297764936,
"last_add_price": 97000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 278,
"entry_price": 19170,
"qty": 559,
"entry_price": 19059.409660107336,
"entry_at": "2026-07-27T09:06:01.482556+09:00",
"stop": 18093,
"target": 21324,
"peak": 19300,
"stop": 18105,
"target": 20968,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5342833.247656252,
"last_add_price": 19170
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 950,
"entry_price": 6936.2947368421055,
"entry_at": "2026-07-28T09:00:16.371383+09:00",
"stop": 6040,
"target": 8729,
"peak": 7780,
"qty": 85,
"entry_price": 119184.70588235294,
"entry_at": "2026-07-29T09:02:02.235827+09:00",
"stop": 111408,
"target": 134739,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 3299693.822310939,
"last_add_price": 7100
"tranche_value": 5120146.001656252,
"last_add_price": 120500
}
},
"realized_pnl": -16663116.882500025,
"closed_trades": 40,
"realized_pnl": -19369843.72400003,
"closed_trades": 44,
"wins": 4,
"peak_equity": 101291892.54300004,
"max_drawdown": 0.19859179423427756,
"max_drawdown": 0.20613604084488943,
"last_exit": {
"086790": "2026-07-28",
"030000": "2026-07-24",
@@ -150,8 +108,12 @@
"319660": "2026-07-23",
"105560": "2026-07-20",
"024060": "2026-07-27",
"252990": "2026-07-28"
"252990": "2026-07-28",
"078930": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
"003680": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582834+09:00",
"updated_at": "2026-07-28T15:28:01.028771+09:00"
"updated_at": "2026-07-29T15:28:01.469359+09:00"
}
@@ -109,3 +109,11 @@
{"ts": "2026-07-28T09:02:04.754909+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 385, "proceeds": 4580251, "entry_price": 14266, "pnl": -912843, "pnl_pct": -16.44, "hold_from": "2026-07-22T14:18:05.429022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,983 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,830"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T09:10:01.747136+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 464, "cost": 3294894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T13:24:01.023779+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123300, "qty": 41, "proceeds": 5045442, "entry_price": 133100, "pnl": -412476, "pnl_pct": -7.36, "hold_from": "2026-07-21T10:08:04.176920+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,458 (현재 123,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 152,385"}, {"label": "추세(20일선)", "ok": true, "detail": "118,415"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,361"}]}
{"ts": "2026-07-29T09:02:02.235829+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 43, "cost": 5070460, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:04:02.482605+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 85500, "qty": 97, "proceeds": 8277328, "entry_price": 95485, "pnl": -986062, "pnl_pct": -10.46, "hold_from": "2026-07-24T09:26:01.012056+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "86,554 (현재 85,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 113,346"}, {"label": "추세(20일선)", "ok": true, "detail": "74,935"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:16:04.470378+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 42, "cost": 5061759, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:09.991614+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 281, "cost": 5325749, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18093, "target": 21324, "signals": [{"label": "손절선", "ok": true, "detail": "18,093 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,324"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,488"}]}
{"ts": "2026-07-29T09:24:09.992155+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134570, "pnl": -480564, "pnl_pct": -4.44, "hold_from": "2026-07-09T09:10:01.830227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,978 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,755"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.387952+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 801, "cost": 5119158, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:42:05.416427+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 801, "proceeds": 4780640, "entry_price": 6390, "pnl": -338518, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.387951+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.428660+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 950, "proceeds": 5688885, "entry_price": 6936, "pnl": -901583, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:16.371383+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 52987504.55449994,
"cash": 60973443.65049994,
"initial": 100000000,
"positions": {
"214450": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.175730+09:00",
"stop": 318647,
"target": 397654,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5132330.379099764,
"last_add_price": 356000
@@ -39,83 +39,41 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 5067979.388839712,
"last_add_price": 91400
},
"095610": {
"code": "095610",
"name": "테스",
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 139000,
"entry_at": "2026-07-27T09:02:06.237125+09:00",
"stop": 108775,
"target": 184337,
"peak": 146400,
"qty": 38,
"entry_price": 131400,
"entry_at": "2026-07-29T09:52:02.378116+09:00",
"stop": 120086,
"target": 148371,
"peak": 133100,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,775 도달",
"cur_price": 121400,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 126900,
"tranches": 1,
"tranche_value": 2128585.542036227,
"last_add_price": 139000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 301,
"entry_price": 19100,
"entry_at": "2026-07-27T09:02:06.237378+09:00",
"stop": 18023,
"target": 20715,
"peak": 19300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5768049.248812497,
"last_add_price": 19100
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 1007,
"entry_price": 6936.3455809334655,
"entry_at": "2026-07-28T09:00:16.475655+09:00",
"stop": 6040,
"target": 8281,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,596 도달",
"cur_price": 6400,
"tranches": 2,
"tranche_value": 3495221.1363822897,
"last_add_price": 7100
"tranche_value": 5079550.709806033,
"last_add_price": 131400
}
},
"realized_pnl": -12315491.67550002,
"closed_trades": 34,
"realized_pnl": -14156826.44950002,
"closed_trades": 39,
"wins": 5,
"peak_equity": 100161893.89500001,
"max_drawdown": 0.13640707597664653,
"max_drawdown": 0.1461807457419789,
"last_exit": {
"086790": "2026-07-28",
"030000": "2026-07-24",
"030000": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-02",
"003490": "2026-07-07",
@@ -125,14 +83,15 @@
"055550": "2026-07-20",
"034730": "2026-07-08",
"319660": "2026-07-23",
"095610": "2026-07-16",
"095610": "2026-07-29",
"105560": "2026-07-20",
"010950": "2026-07-27",
"024060": "2026-07-27",
"003680": "2026-07-27",
"138040": "2026-07-28",
"252990": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-29",
"252990": "2026-07-28",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582849+09:00",
"updated_at": "2026-07-28T15:28:01.030444+09:00"
"updated_at": "2026-07-29T15:28:01.470981+09:00"
}
@@ -87,3 +87,12 @@
{"ts": "2026-07-28T09:40:00.880577+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 119100, "qty": 44, "proceeds": 5230181, "entry_price": 127700, "pnl": -389462, "pnl_pct": -6.73, "hold_from": "2026-07-27T09:18:01.995423+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,030 (현재 119,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,205"}, {"label": "추세(20일선)", "ok": true, "detail": "113,530"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,300"}]}
{"ts": "2026-07-28T11:04:03.768405+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 195, "proceeds": 2099947, "entry_price": 13150, "pnl": -464688, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.521836+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,630"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]}
{"ts": "2026-07-28T13:24:01.025963+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123300, "qty": 42, "proceeds": 5168502, "entry_price": 133100, "pnl": -422537, "pnl_pct": -7.36, "hold_from": "2026-07-21T10:08:04.179066+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,458 (현재 123,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,564"}, {"label": "추세(20일선)", "ok": true, "detail": "118,415"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,361"}]}
{"ts": "2026-07-29T09:24:09.997467+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]}
{"ts": "2026-07-29T09:26:01.906646+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 301, "proceeds": 5689823, "entry_price": 19100, "pnl": -60139, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.237378+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.906834+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1007, "proceeds": 6643290, "entry_price": 6936, "pnl": -342657, "pnl_pct": -4.7, "hold_from": "2026-07-28T09:00:16.475655+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.389679+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 851, "cost": 5438706, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 6978, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T09:52:02.378118+09:00", "side": "BUY", "code": "010950", "name": "S-Oil", "price": 131400, "qty": 38, "cost": 4993949, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 120086, "target": 148371, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "131,100 vs 108,880"}, {"label": "정배열(5>20)", "ok": true, "detail": "115,400 / 108,880"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "115,400 / 113,215"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.5%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +43 · 기 +245 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+21%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.50% (환산) vs 평균 0.32% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 116,900"}, {"label": "거래량 급증", "ok": true, "detail": "567,993 (환산) vs 평균 359,705"}, {"label": "회전율 급증", "ok": true, "detail": "0.50% (환산) vs 평균 0.32%"}, {"label": "RSI", "ok": true, "detail": "68"}]}
{"ts": "2026-07-29T10:24:01.448639+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 44, "cost": 5430414, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:42:05.418375+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 851, "proceeds": 5079056, "entry_price": 6390, "pnl": -359649, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.389677+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,978"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T12:50:05.475589+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.237125+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T14:20:01.512752+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 44, "proceeds": 5072090, "entry_price": 123400, "pnl": -358324, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.448638+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]}
@@ -1,49 +1,7 @@
{
"cash": 26607306.03949998,
"cash": 49558634.24599998,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 120180.58252427184,
"entry_at": "2026-07-01T09:46:03.099480+09:00",
"stop": 111000,
"target": 147722,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 6239163.4909375,
"last_add_price": 122200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 78,
"entry_price": 134541.02564102566,
"entry_at": "2026-07-09T09:10:01.833874+09:00",
"stop": 122949,
"target": 169318,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5319361.910927292,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.177446+09:00",
"stop": 318647,
"target": 445059,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 4992940.599795671,
"last_add_price": 356000
@@ -81,82 +39,40 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4910846.127133424,
"last_add_price": 91400
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 14,
"entry_price": 139000,
"entry_at": "2026-07-27T09:02:06.239540+09:00",
"stop": 108775,
"target": 229675,
"peak": 146400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,775 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 2049607.7169974358,
"last_add_price": 139000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 289,
"entry_price": 19100,
"qty": 580,
"entry_price": 19024.741379310344,
"entry_at": "2026-07-27T09:02:06.239756+09:00",
"stop": 18023,
"target": 22330,
"peak": 19300,
"stop": 18071,
"target": 21887,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5527839.1075312495,
"last_add_price": 19100
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 958,
"entry_price": 6936.325678496868,
"entry_at": "2026-07-28T09:00:16.577498+09:00",
"stop": 6040,
"target": 9626,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,596 도달",
"cur_price": 6400,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 3329260.867915104,
"last_add_price": 7100
"tranche_value": 5527839.1075312495,
"last_add_price": 18950
}
},
"realized_pnl": -16887319.425500017,
"closed_trades": 30,
"realized_pnl": -19889233.621500026,
"closed_trades": 36,
"wins": 1,
"peak_equity": 100161893.89500001,
"max_drawdown": 0.18050365415866546,
"max_drawdown": 0.2023783637742489,
"last_exit": {
"086790": "2026-06-19",
"086790": "2026-07-29",
"030000": "2026-07-24",
"005930": "2026-06-23",
"403870": "2026-07-02",
@@ -168,11 +84,14 @@
"034730": "2026-07-08",
"319660": "2026-07-23",
"105560": "2026-07-20",
"095610": "2026-07-24",
"095610": "2026-07-29",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
"138040": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582864+09:00",
"updated_at": "2026-07-28T15:28:01.032077+09:00"
"updated_at": "2026-07-29T15:28:01.472635+09:00"
}
@@ -83,3 +83,13 @@
{"ts": "2026-07-28T09:00:16.577503+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 490, "cost": 3322698, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.750562+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 468, "cost": 3323298, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T11:04:03.770897+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 188, "proceeds": 2024564, "entry_price": 13150, "pnl": -448006, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.524338+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,110"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]}
{"ts": "2026-07-29T09:24:10.002211+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]}
{"ts": "2026-07-29T09:24:10.002379+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 291, "cost": 5515277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.002708+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 78, "proceeds": 10011240, "entry_price": 134541, "pnl": -484534, "pnl_pct": -4.42, "hold_from": "2026-07-09T09:10:01.833874+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,949 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,318"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.391374+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 808, "cost": 5163894, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7566, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.450516+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:42:05.420086+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 808, "proceeds": 4822418, "entry_price": 6390, "pnl": -341477, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.391373+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,566"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.431976+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 958, "proceeds": 5736791, "entry_price": 6936, "pnl": -909205, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:16.577498+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:50:05.477470+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 30, "proceeds": 3233682, "entry_price": 130253, "pnl": -674504, "pnl_pct": -17.08, "hold_from": "2026-07-27T09:02:06.239540+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,434"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:30:01.454446+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 103, "proceeds": 12130300, "entry_price": 120181, "pnl": -250157, "pnl_pct": -1.81, "hold_from": "2026-07-01T09:46:03.099480+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,722"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T14:20:01.514442+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 42, "proceeds": 4841541, "entry_price": 123400, "pnl": -342037, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.450515+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]}
@@ -1,49 +1,7 @@
{
"cash": 47188320.94600004,
"cash": 52676110.36350004,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 134562.29508196723,
"entry_at": "2026-07-09T09:10:01.835827+09:00",
"stop": 119106,
"target": 180931,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4136719.8054039073,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 68,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.450599+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4581298.170382758,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:06:07.906813+09:00",
"stop": 302625,
"target": 468030,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3813943.0504600187,
"last_add_price": 350000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3727885.349520808,
"last_add_price": 91400
@@ -92,51 +50,51 @@
"sources": [
"auto"
],
"qty": 299,
"entry_price": 18950,
"qty": 598,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.447374+09:00",
"stop": 17760,
"target": 22520,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5685594.862062503,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 159,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.527098+09:00",
"stop": 10340,
"target": 21580,
"peak": 13730,
"qty": 41,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.452555+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 2094456.8996012467,
"last_add_price": 13150
"tranche_value": 5142605.848996199,
"last_add_price": 123400
}
},
"realized_pnl": -13231442.909000011,
"closed_trades": 19,
"realized_pnl": -16335442.066500016,
"closed_trades": 24,
"wins": 0,
"peak_equity": 100000000,
"max_drawdown": 0.1430581905399996,
"max_drawdown": 0.1668320963649997,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"240810": "2026-07-24",
@@ -146,9 +104,12 @@
"055550": "2026-07-20",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582879+09:00",
"updated_at": "2026-07-28T15:28:01.033706+09:00"
"updated_at": "2026-07-29T15:28:01.474236+09:00"
}
@@ -57,3 +57,14 @@
{"ts": "2026-07-27T09:18:01.999209+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 158380, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-28T11:22:00.757711+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 795, "proceeds": 5260572, "entry_price": 7684, "pnl": -848834, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.242173+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,004"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.826309+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 43, "proceeds": 5038356, "entry_price": 127700, "pnl": -453568, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:01.999208+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.242655+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 344, "cost": 2250097, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.006738+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 299, "cost": 5666900, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.007015+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.835827+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,931"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.007158+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 335, "cost": 2248187, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:10.007360+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 185, "cost": 2092664, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 21580, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,580"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:28:01.393233+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 820, "cost": 5240586, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.452556+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.359379+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 344, "proceeds": 3550024, "entry_price": 12160, "pnl": -633804, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.527098+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,622"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.697397+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 68, "proceeds": 8089794, "entry_price": 132600, "pnl": -928358, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.450599+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.449804+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 679, "proceeds": 3781432, "entry_price": 6624, "pnl": -716853, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.242654+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.598735+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 820, "proceeds": 4795830, "entry_price": 6390, "pnl": -444756, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.393232+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 47188320.94600004,
"cash": 52676110.36350004,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 134562.29508196723,
"entry_at": "2026-07-09T09:10:01.837488+09:00",
"stop": 119106,
"target": 165475,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4136719.8054039073,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 68,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.452585+09:00",
"stop": 119729,
"target": 158342,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4581298.170382758,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:06:07.909051+09:00",
"stop": 302625,
"target": 426679,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3813943.0504600187,
"last_add_price": 350000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3727885.349520808,
"last_add_price": 91400
@@ -92,51 +50,51 @@
"sources": [
"auto"
],
"qty": 299,
"entry_price": 18950,
"qty": 598,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.449498+09:00",
"stop": 17760,
"target": 21330,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5685594.862062503,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 159,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.529452+09:00",
"stop": 10340,
"target": 18770,
"peak": 13730,
"qty": 41,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.454311+09:00",
"stop": 113016,
"target": 144168,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 2094456.8996012467,
"last_add_price": 13150
"tranche_value": 5142605.848996199,
"last_add_price": 123400
}
},
"realized_pnl": -13231442.909000011,
"closed_trades": 19,
"realized_pnl": -16335442.066500016,
"closed_trades": 24,
"wins": 0,
"peak_equity": 100000000,
"max_drawdown": 0.1430581905399996,
"max_drawdown": 0.1668320963649997,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"240810": "2026-07-24",
@@ -146,9 +104,12 @@
"055550": "2026-07-20",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582910+09:00",
"updated_at": "2026-07-28T15:28:01.035358+09:00"
"updated_at": "2026-07-29T15:28:01.475852+09:00"
}
@@ -57,3 +57,14 @@
{"ts": "2026-07-27T09:18:02.000974+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 43, "cost": 5491924, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 148153, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-28T11:22:00.759696+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 795, "proceeds": 5260572, "entry_price": 7684, "pnl": -848834, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.244230+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.828310+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 43, "proceeds": 5038356, "entry_price": 127700, "pnl": -453568, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.000973+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,153"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.245060+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 344, "cost": 2250097, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.010772+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 299, "cost": 5666900, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.011056+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.837488+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,475"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.011197+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 335, "cost": 2248187, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:10.011401+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 185, "cost": 2092664, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:28:01.394949+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 820, "cost": 5240586, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.454312+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.361082+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 344, "proceeds": 3550024, "entry_price": 12160, "pnl": -633804, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.529452+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,801"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.699059+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 68, "proceeds": 8089794, "entry_price": 132600, "pnl": -928358, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.452585+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,342"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.451456+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 679, "proceeds": 3781432, "entry_price": 6624, "pnl": -716853, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.245058+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.600416+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 820, "proceeds": 4795830, "entry_price": 6390, "pnl": -444756, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.394948+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 47544513.475999996,
"cash": 65269300.0365,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 134562.29508196723,
"entry_at": "2026-07-09T09:10:01.839168+09:00",
"stop": 119106,
"target": 157747,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4167016.287066403,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 69,
"entry_price": 132575.36231884058,
"entry_at": "2026-07-10T09:26:06.454294+09:00",
"stop": 119704,
"target": 151882,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4614837.858935807,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:06:07.911275+09:00",
"stop": 302625,
"target": 406003,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3841906.161963773,
"last_add_price": 350000
@@ -81,62 +39,41 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3755996.4301575036,
"last_add_price": 91400
},
"030000": {
"code": "030000",
"name": "제일기획",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 302,
"entry_price": 18950,
"entry_at": "2026-07-24T10:02:04.451570+09:00",
"stop": 17760,
"target": 20735,
"peak": 19300,
"qty": 41,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.456083+09:00",
"stop": 113016,
"target": 138976,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 5728020.23596875,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 160,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.531679+09:00",
"stop": 10340,
"target": 17365,
"peak": 13730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"tranches": 1,
"tranche_value": 2110094.639964724,
"last_add_price": 13150
"tranche_value": 5164071.483514108,
"last_add_price": 123400
}
},
"realized_pnl": -12582906.534000011,
"closed_trades": 19,
"wins": 0,
"realized_pnl": -14984638.498500016,
"closed_trades": 25,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.13672986524000003,
"max_drawdown": 0.15195799963499992,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"030000": "2026-07-29",
"086790": "2026-07-29",
"005930": "2026-06-23",
"403870": "2026-07-07",
"240810": "2026-07-24",
@@ -146,9 +83,12 @@
"055550": "2026-07-20",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.582926+09:00",
"updated_at": "2026-07-28T15:28:01.036978+09:00"
"updated_at": "2026-07-29T15:28:01.477451+09:00"
}
@@ -56,3 +56,13 @@
{"ts": "2026-07-27T09:18:02.002747+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 127700, "qty": 44, "cost": 5619643, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 117473, "target": 143040, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "127,400 vs 117,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,940 / 117,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,940 / 110,142"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+46.7%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +106 · 기 +291 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.26% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "439,847 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.26% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "71"}]}
{"ts": "2026-07-28T11:22:00.761394+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 801, "proceeds": 5300274, "entry_price": 7684, "pnl": -855279, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.246347+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.830227+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127700, "pnl": -464116, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.002746+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,040"}, {"label": "추세(10일선)", "ok": true, "detail": "116,350"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.247306+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 347, "cost": 2269720, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.014921+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134562, "pnl": -380228, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:01.839168+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,106 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,747"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.015166+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 186, "cost": 2103976, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:26:01.914698+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 302, "proceeds": 5708726, "entry_price": 18950, "pnl": -15032, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.451570+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.914854+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 347, "proceeds": 2289197, "entry_price": 6540, "pnl": 19477, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.247304+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.396683+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 826, "cost": 5278932, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.456084+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.362763+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 346, "proceeds": 3570664, "entry_price": 12161, "pnl": -637628, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.531679+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,892"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.700752+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 69, "proceeds": 8208762, "entry_price": 132575, "pnl": -940311, "pnl_pct": -10.09, "hold_from": "2026-07-10T09:26:06.454294+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,704 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 151,882"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.602105+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 826, "proceeds": 4830921, "entry_price": 6390, "pnl": -448010, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.396682+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 27859644.655,
"cash": 50766727.339499995,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 103,
"entry_price": 120180.58252427184,
"entry_at": "2026-07-01T09:46:03.114406+09:00",
"stop": 111000,
"target": 147722,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,779 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 6250717.7646875,
"last_add_price": 122200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 77,
"entry_price": 134418.18181818182,
"entry_at": "2026-07-09T09:36:03.473480+09:00",
"stop": 122826,
"target": 169195,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5273495.601167365,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.185929+09:00",
"stop": 318647,
"target": 445059,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5085796.90859035,
"last_add_price": 356000
@@ -81,82 +39,40 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4982054.533958632,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 139000,
"entry_at": "2026-07-27T09:02:06.248329+09:00",
"stop": 108775,
"target": 229675,
"peak": 146400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,775 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 2089467.8197444167,
"last_add_price": 139000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 295,
"entry_price": 19100,
"qty": 592,
"entry_price": 19024.74662162162,
"entry_at": "2026-07-27T09:02:06.248456+09:00",
"stop": 18023,
"target": 22330,
"peak": 19300,
"stop": 18071,
"target": 21887,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5636180.5746875,
"last_add_price": 19100
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 978,
"entry_price": 6936.40081799591,
"entry_at": "2026-07-28T09:00:17.897086+09:00",
"stop": 6040,
"target": 9626,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,596 도달",
"cur_price": 6400,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 3395515.4578251736,
"last_add_price": 7100
"tranche_value": 5636180.5746875,
"last_add_price": 18950
}
},
"realized_pnl": -15244922.310000014,
"closed_trades": 27,
"realized_pnl": -18311185.043000016,
"closed_trades": 33,
"wins": 1,
"peak_equity": 100344662.275,
"max_drawdown": 0.1655507850978016,
"max_drawdown": 0.18790466610796128,
"last_exit": {
"086790": "2026-06-19",
"086790": "2026-07-29",
"030000": "2026-07-24",
"403870": "2026-07-02",
"003490": "2026-07-07",
@@ -166,11 +82,14 @@
"034730": "2026-07-08",
"319660": "2026-07-23",
"105560": "2026-07-20",
"095610": "2026-07-24",
"095610": "2026-07-29",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29",
"138040": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583136+09:00",
"updated_at": "2026-07-28T15:28:01.038624+09:00"
"updated_at": "2026-07-29T15:28:01.479045+09:00"
}
@@ -77,3 +77,13 @@
{"ts": "2026-07-28T09:00:17.897091+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 500, "cost": 3390509, "path": "pullback", "reason": "눌림목 지정가 7,596 도달", "stop": 5916, "target": 9373, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,596 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.757637+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 478, "cost": 3394309, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 9373, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,373"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T11:04:03.862281+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 191, "proceeds": 2056871, "entry_price": 13150, "pnl": -455155, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.533927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,110"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]}
{"ts": "2026-07-29T09:24:10.018164+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 229675, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 229,675"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]}
{"ts": "2026-07-29T09:24:10.018323+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 297, "cost": 5628994, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 22330, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,330"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.018592+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.473480+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 169,195"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.398381+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 824, "cost": 5266150, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7566, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.457804+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 43, "cost": 5306996, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 146764, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:42:05.427012+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 824, "proceeds": 4917911, "entry_price": 6390, "pnl": -348238, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.398380+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,566"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.438536+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 978, "proceeds": 5856557, "entry_price": 6936, "pnl": -928260, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:17.897086+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,626"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:50:05.483924+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.248329+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 213,468"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:30:01.461196+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 118000, "qty": 103, "proceeds": 12130300, "entry_price": 120181, "pnl": -250157, "pnl_pct": -1.81, "hold_from": "2026-07-01T09:46:03.114406+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 118,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 147,722"}, {"label": "추세(20일선)", "ok": false, "detail": "118,145"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T14:20:01.520902+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 43, "proceeds": 4956815, "entry_price": 123400, "pnl": -350181, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.457803+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 146,764"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]}
@@ -1,49 +1,7 @@
{
"cash": 39896969.21600001,
"cash": 46349207.48200001,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 124176.4705882353,
"entry_at": "2026-07-02T10:18:03.868150+09:00",
"stop": 111006,
"target": 163689,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5323473.79266045,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.475227+09:00",
"stop": 118952,
"target": 180777,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4027945.7278098115,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.319241+09:00",
"stop": 305399,
"target": 472804,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3889733.683715179,
"last_add_price": 353000
@@ -81,83 +39,62 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3742230.636714602,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 12,
"entry_price": 155500,
"entry_at": "2026-07-24T09:00:08.691316+09:00",
"stop": 117686,
"target": 268942,
"peak": 155500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,093 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 1870164.384838387,
"last_add_price": 155500
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 300,
"entry_price": 18950,
"qty": 600,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.455464+09:00",
"stop": 17760,
"target": 22520,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5696942.092812501,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 741,
"entry_price": 6936.329284750337,
"entry_at": "2026-07-28T09:00:18.003009+09:00",
"stop": 5741,
"target": 10522,
"peak": 7780,
"qty": 89,
"entry_price": 119185.39325842696,
"entry_at": "2026-07-29T09:02:02.251620+09:00",
"stop": 111200,
"target": 143142,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 2570625.313254558,
"last_add_price": 7100
"tranche_value": 5327150.576000001,
"last_add_price": 120500
}
},
"realized_pnl": -13849373.77600001,
"closed_trades": 22,
"realized_pnl": -16596935.273000015,
"closed_trades": 27,
"wins": 0,
"peak_equity": 101140808.32700005,
"max_drawdown": 0.1601801427038344,
"max_drawdown": 0.17882199227165796,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"010120": "2026-06-25",
"298040": "2026-06-26",
"403870": "2026-07-07",
@@ -167,11 +104,13 @@
"034730": "2026-07-07",
"003490": "2026-07-23",
"105560": "2026-07-20",
"095610": "2026-07-23",
"095610": "2026-07-29",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583184+09:00",
"updated_at": "2026-07-28T15:28:01.040263+09:00"
"updated_at": "2026-07-29T15:28:01.480642+09:00"
}
@@ -67,3 +67,13 @@
{"ts": "2026-07-28T09:00:18.003017+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 379, "cost": 2570005, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 10237, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.759359+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 362, "cost": 2570586, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 10237, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,237"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.786746+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 299, "proceeds": 3333317, "entry_price": 14266, "pnl": -932852, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.440873+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,395"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.251621+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 138000, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.482734+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 138000, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 138,000"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.021522+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 268942, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 268,942"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]}
{"ts": "2026-07-29T09:24:10.021664+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 300, "cost": 5685853, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 22520, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,520"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.021870+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.475227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,777"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.400110+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 817, "cost": 5221413, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:18:05.390014+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:08.691316+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 246,789"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.704033+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.868150+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,689"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:06:06.533240+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 741, "proceeds": 4208068, "entry_price": 6936, "pnl": -932523, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.003009+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,522"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.605461+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 817, "proceeds": 4778284, "entry_price": 6390, "pnl": -443129, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.400109+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 47905587.5035,
"cash": 37738549.5725,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.476927+09:00",
"stop": 118952,
"target": 165321,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4067747.817915917,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.189281+09:00",
"stop": 307839,
"target": 434250,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3891157.6622701483,
"last_add_price": 356000
@@ -55,12 +34,12 @@
"entry_at": "2026-07-22T09:04:01.835859+09:00",
"stop": 92100,
"target": 119147,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5814522.042968751,
"last_add_price": 103100
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3778918.748885343,
"last_add_price": 90900
@@ -92,27 +71,48 @@
"sources": [
"auto"
],
"qty": 299,
"entry_price": 19100,
"qty": 600,
"entry_price": 19024.75,
"entry_at": "2026-07-27T09:02:06.252279+09:00",
"stop": 17760,
"target": 21780,
"peak": 19300,
"target": 21554,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5719122.209000001,
"last_add_price": 19100
"last_add_price": 18950
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 91,
"entry_price": 119185.71428571429,
"entry_at": "2026-07-29T09:02:02.253867+09:00",
"stop": 111200,
"target": 135157,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 5467080.19828125,
"last_add_price": 120500
}
},
"realized_pnl": -12139420.146500017,
"closed_trades": 26,
"realized_pnl": -13685415.115000019,
"closed_trades": 29,
"wins": 2,
"peak_equity": 101368884.75700004,
"max_drawdown": 0.1409779469090311,
"max_drawdown": 0.15757813057519107,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -127,8 +127,10 @@
"105560": "2026-07-20",
"095610": "2026-07-28",
"252990": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583198+09:00",
"updated_at": "2026-07-28T15:28:01.041917+09:00"
"updated_at": "2026-07-29T15:28:01.482277+09:00"
}
@@ -74,3 +74,12 @@
{"ts": "2026-07-28T09:00:18.106536+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 126200, "qty": 24, "proceeds": 3022894, "entry_price": 167779, "pnl": -1004410, "pnl_pct": -24.78, "hold_from": "2026-06-24T09:46:05.168473+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "131,479 (현재 128,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 240,379"}, {"label": "추세(20일선)", "ok": false, "detail": "134,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T10:08:02.788479+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 303, "proceeds": 3377910, "entry_price": 14266, "pnl": -945348, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.442603+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:22:00.766355+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.252691+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.253534+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 351, "cost": 2295884, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]}
{"ts": "2026-07-29T09:02:02.253868+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.484552+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.024717+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 301, "cost": 5704806, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.024961+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.476927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.025084+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 343, "cost": 2301875, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:28:01.401823+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 838, "cost": 5355623, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T13:14:05.457905+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 694, "proceeds": 3864969, "entry_price": 6624, "pnl": -732791, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.253533+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.607125+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 838, "proceeds": 4901104, "entry_price": 6390, "pnl": -454519, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.401822+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 56774663.38450003,
"cash": 53750178.10300002,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.478610+09:00",
"stop": 118952,
"target": 165321,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4039283.450888891,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.191055+09:00",
"stop": 307839,
"target": 434250,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3848025.874946516,
"last_add_price": 356000
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3774325.11581779,
"last_add_price": 90900
@@ -71,48 +50,48 @@
"sources": [
"auto"
],
"qty": 299,
"entry_price": 19100,
"qty": 600,
"entry_price": 19024.75,
"entry_at": "2026-07-27T09:02:06.254501+09:00",
"stop": 17760,
"target": 21780,
"peak": 19300,
"target": 21554,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5721714.462968752,
"last_add_price": 19100
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 160,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.540221+09:00",
"stop": 10340,
"target": 18770,
"peak": 13730,
"qty": 42,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.463012+09:00",
"stop": 113016,
"target": 144168,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 2116245.761706495,
"last_add_price": 13150
"tranche_value": 5187375.1457318,
"last_add_price": 123400
}
},
"realized_pnl": -12694957.745500017,
"closed_trades": 26,
"realized_pnl": -14866665.129500018,
"closed_trades": 30,
"wins": 2,
"peak_equity": 100182695.41500005,
"max_drawdown": 0.13404948883506757,
"max_drawdown": 0.1552724973865191,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -126,9 +105,12 @@
"105560": "2026-07-20",
"024060": "2026-07-27",
"095610": "2026-07-28",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583212+09:00",
"updated_at": "2026-07-28T15:28:01.043569+09:00"
"updated_at": "2026-07-29T15:28:01.483940+09:00"
}
@@ -72,3 +72,13 @@
{"ts": "2026-07-28T09:04:02.759310+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:07.269469+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 234,847"}, {"label": "추세(20일선)", "ok": false, "detail": "134,595"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:22:00.768046+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.254810+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,897"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T12:56:02.896515+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.412364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(20일선)", "ok": true, "detail": "113,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]}
{"ts": "2026-07-29T09:02:02.255678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 348, "cost": 2276261, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.027865+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 301, "cost": 5704806, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21780, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,780"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.028115+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.478610+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.028241+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 339, "cost": 2275031, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(20일선)", "ok": true, "detail": "4,732"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:10.028406+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 187, "cost": 2115287, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(20일선)", "ok": true, "detail": "12,805"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:28:01.403531+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 828, "cost": 5291714, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.463013+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 42, "cost": 5183577, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.369415+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 347, "proceeds": 3580983, "entry_price": 12158, "pnl": -638619, "pnl_pct": -14.96, "hold_from": "2026-07-27T09:12:01.540221+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,795"}, {"label": "추세(20일선)", "ok": false, "detail": "12,592"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.459920+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 687, "proceeds": 3825985, "entry_price": 6624, "pnl": -725308, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.255677+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(20일선)", "ok": true, "detail": "4,782"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.608819+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 828, "proceeds": 4842618, "entry_price": 6390, "pnl": -449095, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.403529+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 39896969.21600001,
"cash": 46349207.48200001,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 124176.4705882353,
"entry_at": "2026-07-02T10:18:03.875113+09:00",
"stop": 111006,
"target": 150518,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5323473.79266045,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.480275+09:00",
"stop": 118952,
"target": 165321,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4027945.7278098115,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.324564+09:00",
"stop": 305399,
"target": 430953,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3889733.683715179,
"last_add_price": 353000
@@ -81,83 +39,62 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3742230.636714602,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 12,
"entry_price": 155500,
"entry_at": "2026-07-24T09:00:09.009222+09:00",
"stop": 117686,
"target": 231128,
"peak": 155500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,093 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 1870164.384838387,
"last_add_price": 155500
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 300,
"entry_price": 18950,
"qty": 600,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.460951+09:00",
"stop": 17760,
"target": 21330,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5696942.092812501,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 741,
"entry_price": 6936.329284750337,
"entry_at": "2026-07-28T09:00:18.311548+09:00",
"stop": 5741,
"target": 9327,
"peak": 7780,
"qty": 89,
"entry_price": 119185.39325842696,
"entry_at": "2026-07-29T09:02:02.257865+09:00",
"stop": 111200,
"target": 135156,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 2570625.313254558,
"last_add_price": 7100
"tranche_value": 5327150.576000001,
"last_add_price": 120500
}
},
"realized_pnl": -13849373.77600001,
"closed_trades": 22,
"realized_pnl": -16596935.273000015,
"closed_trades": 27,
"wins": 0,
"peak_equity": 101140808.32700005,
"max_drawdown": 0.1601801427038344,
"max_drawdown": 0.17882199227165796,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"010120": "2026-06-25",
"298040": "2026-06-26",
"403870": "2026-07-07",
@@ -167,11 +104,13 @@
"034730": "2026-07-07",
"003490": "2026-07-23",
"105560": "2026-07-20",
"095610": "2026-07-23",
"095610": "2026-07-29",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583227+09:00",
"updated_at": "2026-07-28T15:28:01.045188+09:00"
"updated_at": "2026-07-29T15:28:01.485537+09:00"
}
@@ -67,3 +67,13 @@
{"ts": "2026-07-28T09:00:18.311555+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 379, "cost": 2570005, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 9085, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.764446+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 362, "cost": 2570586, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 9085, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,085"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.791861+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 299, "proceeds": 3333317, "entry_price": 14266, "pnl": -932852, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.445916+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 20,352"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.257867+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 45, "cost": 5306296, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.488056+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 44, "cost": 5302795, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.030807+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 231128, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 231,128"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]}
{"ts": "2026-07-29T09:24:10.030921+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 300, "cost": 5685853, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.031108+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.480275+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,321"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.405241+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 817, "cost": 5221413, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:18:05.395067+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:09.009222+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 210,267"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.708942+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.875113+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 150,518"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:06:06.538231+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 741, "proceeds": 4208068, "entry_price": 6936, "pnl": -932523, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.311548+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,327"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.610479+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 817, "proceeds": 4778284, "entry_price": 6390, "pnl": -443129, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.405240+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,5 +1,5 @@
{
"cash": 54267867.90049997,
"cash": 67495423.53049996,
"initial": 100000000,
"positions": {
"214450": {
@@ -13,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.194399+09:00",
"stop": 318449,
"target": 397456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5225929.659467572,
"last_add_price": 356000
@@ -39,83 +39,20 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 5138975.321289769,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 15,
"entry_price": 139000,
"entry_at": "2026-07-27T09:02:06.258350+09:00",
"stop": 108775,
"target": 184337,
"peak": 146400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,775 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 2167992.3633458223,
"last_add_price": 139000
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 308,
"entry_price": 19100,
"entry_at": "2026-07-27T09:02:06.258453+09:00",
"stop": 18023,
"target": 20715,
"peak": 19300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,673 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5892747.465906248,
"last_add_price": 19100
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 1027,
"entry_price": 6936.416747809153,
"entry_at": "2026-07-28T09:00:18.415977+09:00",
"stop": 6040,
"target": 8281,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,596 도달",
"cur_price": 6400,
"tranches": 2,
"tranche_value": 3566532.3780451375,
"last_add_price": 7100
}
},
"realized_pnl": -10277814.749500021,
"closed_trades": 31,
"realized_pnl": -12144022.844500024,
"closed_trades": 36,
"wins": 5,
"peak_equity": 100344662.275,
"max_drawdown": 0.11804747861960987,
"max_drawdown": 0.12451886663644701,
"last_exit": {
"086790": "2026-07-20",
"030000": "2026-07-24",
"030000": "2026-07-29",
"403870": "2026-07-02",
"003490": "2026-07-07",
"240810": "2026-07-24",
@@ -123,14 +60,15 @@
"093370": "2026-07-20",
"034730": "2026-07-08",
"319660": "2026-07-27",
"095610": "2026-07-16",
"095610": "2026-07-29",
"105560": "2026-07-20",
"010950": "2026-07-27",
"024060": "2026-07-27",
"003680": "2026-07-27",
"138040": "2026-07-28",
"252990": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-29",
"252990": "2026-07-28",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583241+09:00",
"updated_at": "2026-07-28T15:28:01.046847+09:00"
"updated_at": "2026-07-29T15:28:01.487154+09:00"
}
@@ -81,3 +81,11 @@
{"ts": "2026-07-28T09:10:01.766164+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 502, "cost": 3564735, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8077, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,077"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T09:38:04.856150+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 120100, "qty": 45, "proceeds": 5393961, "entry_price": 127900, "pnl": -362402, "pnl_pct": -6.1, "hold_from": "2026-07-27T09:32:01.416272+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,209 (현재 120,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 139,437"}, {"label": "추세(20일선)", "ok": true, "detail": "113,560"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 +325"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,460"}]}
{"ts": "2026-07-28T11:04:03.876316+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10790, "qty": 199, "proceeds": 2143023, "entry_price": 13150, "pnl": -474220, "pnl_pct": -17.95, "hold_from": "2026-07-27T09:12:01.544267+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,830 (현재 10,810)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 16,630"}, {"label": "추세(20일선)", "ok": false, "detail": "12,616"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +156 · 기 -156"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,003"}]}
{"ts": "2026-07-29T09:24:10.033574+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 17, "cost": 2084513, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 108775, "target": 184337, "signals": [{"label": "손절선", "ok": true, "detail": "108,775 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 184,337"}, {"label": "추세(20일선)", "ok": true, "detail": "134,320"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 148,242"}]}
{"ts": "2026-07-29T09:26:01.925323+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 308, "proceeds": 5822145, "entry_price": 19100, "pnl": -61538, "pnl_pct": -0.84, "hold_from": "2026-07-27T09:02:06.258453+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "18,852"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.925475+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 1027, "proceeds": 6775232, "entry_price": 6936, "pnl": -349536, "pnl_pct": -4.71, "hold_from": "2026-07-28T09:00:18.415977+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.406972+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 871, "cost": 5566525, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 6978, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.466402+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 45, "cost": 5553833, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 115612, "target": 135082, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "123,400 vs 113,725"}, {"label": "정배열(5>20)", "ok": true, "detail": "118,140 / 113,725"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:42:05.435654+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 871, "proceeds": 5198423, "entry_price": 6390, "pnl": -368102, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.406971+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 6,978"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T12:50:05.492063+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 108000, "qty": 32, "proceeds": 3449261, "entry_price": 130288, "pnl": -720565, "pnl_pct": -17.11, "hold_from": "2026-07-27T09:02:06.258350+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "108,775 (현재 108,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,878"}, {"label": "추세(20일선)", "ok": false, "detail": "133,815"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T14:20:01.529112+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 115500, "qty": 45, "proceeds": 5187365, "entry_price": 123400, "pnl": -366468, "pnl_pct": -6.4, "hold_from": "2026-07-29T10:24:01.466401+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "115,612 (현재 115,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 135,082"}, {"label": "추세(20일선)", "ok": true, "detail": "113,330"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +44 · 기 +333"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 126,053"}]}
@@ -1,28 +1,7 @@
{
"cash": 48597347.38000002,
"cash": 38950713.03150001,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 60,
"entry_price": 134368.33333333334,
"entry_at": "2026-07-09T09:36:03.483808+09:00",
"stop": 118912,
"target": 157553,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4100167.692846849,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.196090+09:00",
"stop": 308113,
"target": 413456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3939968.9939820534,
"last_add_price": 356000
@@ -55,12 +34,12 @@
"entry_at": "2026-07-22T09:04:01.842571+09:00",
"stop": 92100,
"target": 114641,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5880825.494625002,
"last_add_price": 103100
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3836617.5002028025,
"last_add_price": 90900
@@ -92,27 +71,48 @@
"sources": [
"auto"
],
"qty": 304,
"entry_price": 19100,
"qty": 611,
"entry_price": 19024.631751227495,
"entry_at": "2026-07-27T09:02:06.260443+09:00",
"stop": 17760,
"target": 21110,
"peak": 19300,
"target": 20922,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5821568.917468751,
"last_add_price": 19100
"last_add_price": 18950
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 93,
"entry_price": 119186.02150537634,
"entry_at": "2026-07-29T09:02:02.261876+09:00",
"stop": 111200,
"target": 131165,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 5570614.761375001,
"last_add_price": 120500
}
},
"realized_pnl": -10482615.535000017,
"closed_trades": 29,
"wins": 4,
"realized_pnl": -11288073.90600002,
"closed_trades": 32,
"wins": 5,
"peak_equity": 101368884.75700004,
"max_drawdown": 0.12474259145015222,
"max_drawdown": 0.1340342561730886,
"last_exit": {
"030000": "2026-07-24",
"086790": "2026-07-20",
@@ -127,8 +127,10 @@
"003490": "2026-07-09",
"105560": "2026-07-20",
"252990": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583273+09:00",
"updated_at": "2026-07-28T15:28:01.048501+09:00"
"updated_at": "2026-07-29T15:28:01.488746+09:00"
}
@@ -80,3 +80,11 @@
{"ts": "2026-07-28T10:08:02.795319+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 307, "proceeds": 3422503, "entry_price": 14266, "pnl": -957844, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.449229+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,636"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:22:00.772935+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 819, "proceeds": 5419382, "entry_price": 7684, "pnl": -874612, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.260601+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(20일선)", "ok": true, "detail": "4,821"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:34:01.995508+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 120300, "qty": 12, "proceeds": 1440785, "entry_price": 158100, "pnl": -456700, "pnl_pct": -23.91, "hold_from": "2026-07-22T15:04:01.021105+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "120,314 (현재 120,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 214,778"}, {"label": "추세(20일선)", "ok": false, "detail": "134,430"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +285 · 기 -563"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 168,711"}]}
{"ts": "2026-07-29T09:02:02.261523+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 358, "cost": 2341671, "path": "pullback", "reason": "눌림목 지정가 7,837 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,540 vs 4,829"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,266 / 4,829"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,837 (현재 6,540)"}]}
{"ts": "2026-07-29T09:02:02.261877+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 47, "cost": 5542131, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.491611+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 46, "cost": 5543831, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.036116+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 307, "cost": 5818523, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21110, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,110"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.036308+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 60, "proceeds": 7700954, "entry_price": 134368, "pnl": -362356, "pnl_pct": -4.29, "hold_from": "2026-07-09T09:36:03.483808+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,912 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,553"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.927146+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 358, "proceeds": 2361766, "entry_price": 6540, "pnl": 20094, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.261522+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(20일선)", "ok": true, "detail": "4,833"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.408657+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 854, "cost": 5457879, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T13:34:03.613777+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 854, "proceeds": 4994681, "entry_price": 6390, "pnl": -463197, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.408655+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,332"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 56167697.05300004,
"cash": 53381301.820000045,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 60,
"entry_price": 134368.33333333334,
"entry_at": "2026-07-09T09:36:03.485481+09:00",
"stop": 118912,
"target": 165281,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4104199.1508728755,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.329595+09:00",
"stop": 305125,
"target": 430679,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3869967.7922643563,
"last_add_price": 353000
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3737129.4618013836,
"last_add_price": 90900
@@ -71,48 +50,48 @@
"sources": [
"auto"
],
"qty": 302,
"entry_price": 18950,
"qty": 604,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.466250+09:00",
"stop": 17760,
"target": 21330,
"peak": 19300,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5724944.494593753,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 160,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.548027+09:00",
"stop": 10340,
"target": 18770,
"peak": 13730,
"qty": 41,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.469724+09:00",
"stop": 113016,
"target": 144168,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 2109152.1279527587,
"last_add_price": 13150
"tranche_value": 5162533.383709267,
"last_add_price": 123400
}
},
"realized_pnl": -13220911.927000012,
"closed_trades": 19,
"realized_pnl": -15391014.730000013,
"closed_trades": 23,
"wins": 0,
"peak_equity": 100024962.38500004,
"max_drawdown": 0.13609677821824845,
"max_drawdown": 0.1580397551578642,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-07-28",
@@ -124,9 +103,12 @@
"055550": "2026-07-20",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583289+09:00",
"updated_at": "2026-07-28T15:28:01.050119+09:00"
"updated_at": "2026-07-29T15:28:01.490354+09:00"
}
@@ -55,3 +55,13 @@
{"ts": "2026-07-28T11:22:00.774625+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 800, "proceeds": 5293657, "entry_price": 7684, "pnl": -854425, "pnl_pct": -13.72, "hold_from": "2026-07-27T09:02:06.262348+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,898"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T12:56:02.903081+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.419969+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 148,411"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]}
{"ts": "2026-07-28T13:20:03.855462+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 69, "proceeds": 8525543, "entry_price": 137175, "pnl": -940977, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.363790+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,803"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.263572+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 347, "cost": 2269720, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 9031, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.038511+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 302, "cost": 5723758, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17760, "target": 21330, "signals": [{"label": "손절선", "ok": true, "detail": "17,760 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,330"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.038670+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 60, "proceeds": 7700954, "entry_price": 134368, "pnl": -362356, "pnl_pct": -4.29, "hold_from": "2026-07-09T09:36:03.485481+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,912 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 165,281"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.038748+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 338, "cost": 2268320, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 9031, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,031"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:10.038867+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 186, "cost": 2103976, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 18770, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,770"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:28:01.410420+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 824, "cost": 5266150, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7435, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.469725+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 144168, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.376027+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 346, "proceeds": 3570664, "entry_price": 12161, "pnl": -637628, "pnl_pct": -14.97, "hold_from": "2026-07-27T09:12:01.548027+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 15,803"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.466408+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 685, "proceeds": 3814847, "entry_price": 6624, "pnl": -723194, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.263571+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,672"}, {"label": "추세(10일선)", "ok": true, "detail": "5,204"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.615477+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 824, "proceeds": 4819224, "entry_price": 6390, "pnl": -446926, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.410419+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,435"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 56205169.073000036,
"cash": 65766270.82200003,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 61,
"entry_price": 134409.83606557376,
"entry_at": "2026-07-09T09:36:03.487132+09:00",
"stop": 118954,
"target": 157594,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4134023.492494496,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.331285+09:00",
"stop": 305399,
"target": 410027,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3898349.7986140535,
"last_add_price": 353000
@@ -60,61 +39,40 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3762093.1541708363,
"last_add_price": 90900
},
"030000": {
"code": "030000",
"name": "제일기획",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 304,
"entry_price": 18950,
"entry_at": "2026-07-24T10:02:04.467963+09:00",
"stop": 17760,
"target": 20735,
"peak": 19300,
"qty": 41,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.471456+09:00",
"stop": 113016,
"target": 138976,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,643 도달",
"cur_price": 18810,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 5764398.856562503,
"last_add_price": 18950
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 161,
"entry_price": 13150,
"entry_at": "2026-07-27T09:12:01.549891+09:00",
"stop": 10340,
"target": 17365,
"peak": 13730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,180 도달",
"cur_price": 11210,
"tranches": 1,
"tranche_value": 2123684.549898044,
"last_add_price": 13150
"tranche_value": 5181824.996564139,
"last_add_price": 123400
}
},
"realized_pnl": -12642408.76450001,
"closed_trades": 19,
"wins": 0,
"realized_pnl": -14100509.648000013,
"closed_trades": 24,
"wins": 1,
"peak_equity": 100024962.38500004,
"max_drawdown": 0.13028867965817217,
"max_drawdown": 0.1434371103062925,
"last_exit": {
"030000": "2026-07-15",
"030000": "2026-07-29",
"086790": "2026-07-28",
"403870": "2026-07-07",
"240810": "2026-07-24",
@@ -124,9 +82,12 @@
"055550": "2026-07-20",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29",
"252990": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583304+09:00",
"updated_at": "2026-07-28T15:28:01.051752+09:00"
"updated_at": "2026-07-29T15:28:01.491957+09:00"
}
@@ -54,3 +54,12 @@
{"ts": "2026-07-28T11:22:00.776303+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6630, "qty": 805, "proceeds": 5326743, "entry_price": 7684, "pnl": -859575, "pnl_pct": -13.71, "hold_from": "2026-07-27T09:02:06.264397+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,577 (현재 6,380)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,344"}, {"label": "추세(10일선)", "ok": true, "detail": "5,282"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T12:56:02.904762+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 44, "proceeds": 5155527, "entry_price": 127900, "pnl": -472917, "pnl_pct": -8.21, "hold_from": "2026-07-27T09:32:01.421842+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,645 (현재 117,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,283"}, {"label": "추세(10일선)", "ok": true, "detail": "116,360"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,553"}]}
{"ts": "2026-07-28T13:20:03.857155+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 123800, "qty": 71, "proceeds": 8772660, "entry_price": 137176, "pnl": -968301, "pnl_pct": -9.75, "hold_from": "2026-07-13T09:48:02.365501+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,862 (현재 123,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,147"}, {"label": "추세(10일선)", "ok": true, "detail": "119,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.265506+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 349, "cost": 2282802, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 8408, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:10.041014+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 61, "proceeds": 7829303, "entry_price": 134410, "pnl": -370927, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.487132+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,954 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,594"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.041181+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 11310, "qty": 187, "cost": 2115287, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10340, "target": 17365, "signals": [{"label": "손절선", "ok": true, "detail": "10,340 (현재 15,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 17,365"}, {"label": "추세(10일선)", "ok": true, "detail": "12,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +242 · 기 -182"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 13,887"}]}
{"ts": "2026-07-29T09:26:01.930391+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 304, "proceeds": 5746532, "entry_price": 18950, "pnl": -15132, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.467963+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.930530+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6610, "qty": 349, "proceeds": 2302392, "entry_price": 6540, "pnl": 19589, "pnl_pct": 1.07, "hold_from": "2026-07-29T09:02:02.265505+09:00", "reason": "트레일링 익절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "7,526 (현재 6,610)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "5,306"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.412116+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 830, "cost": 5304496, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:24:01.471457+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 41, "cost": 5060159, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 138976, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "123,400 vs 116,950"}, {"label": "정배열(5>10)", "ok": true, "detail": "118,140 / 116,950"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T10:52:02.377740+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 10340, "qty": 348, "proceeds": 3591303, "entry_price": 12161, "pnl": -641452, "pnl_pct": -14.98, "hold_from": "2026-07-27T09:12:01.549891+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "10,340 (현재 10,340)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 14,893"}, {"label": "추세(10일선)", "ok": false, "detail": "12,607"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +239 · 기 -181"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.617123+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 830, "proceeds": 4854316, "entry_price": 6390, "pnl": -450180, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.412115+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 41351647.54600003,
"cash": 59106467.79900003,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 85,
"entry_price": 124176.4705882353,
"entry_at": "2026-07-02T10:18:03.885656+09:00",
"stop": 111006,
"target": 143933,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5357366.7482318785,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134408.4745762712,
"entry_at": "2026-07-09T09:36:03.488778+09:00",
"stop": 118952,
"target": 157593,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4055251.939081083,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-13T09:12:04.332947+09:00",
"stop": 305399,
"target": 410027,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3913399.394880189,
"last_add_price": 353000
@@ -81,87 +39,45 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3814573.88062613,
"last_add_price": 90900
},
"095610": {
"code": "095610",
"name": "테스",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 12,
"entry_price": 155500,
"entry_at": "2026-07-24T09:00:09.525183+09:00",
"stop": 117686,
"target": 212221,
"peak": 155500,
"qty": 91,
"entry_price": 119185.71428571429,
"entry_at": "2026-07-29T09:02:02.267342+09:00",
"stop": 111200,
"target": 131164,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 158,093 도달",
"cur_price": 121400,
"tranches": 1,
"tranche_value": 1907438.4417107757,
"last_add_price": 155500
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 306,
"entry_price": 18950,
"entry_at": "2026-07-24T10:02:04.469651+09:00",
"stop": 17760,
"target": 20735,
"peak": 19300,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"tranche_value": 5809954.857343752,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"sources": [
"auto"
],
"qty": 755,
"entry_price": 6936.397350993378,
"entry_at": "2026-07-28T09:00:18.830154+09:00",
"stop": 5741,
"target": 8729,
"peak": 7780,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 2622666.0387777355,
"last_add_price": 7100
"tranche_value": 5436300.471625002,
"last_add_price": 120500
}
},
"realized_pnl": -12095590.587000012,
"closed_trades": 25,
"realized_pnl": -14884731.466000017,
"closed_trades": 31,
"wins": 2,
"peak_equity": 101140808.32700005,
"max_drawdown": 0.1429631720388377,
"max_drawdown": 0.16056961375564408,
"last_exit": {
"030000": "2026-07-15",
"086790": "2026-06-23",
"030000": "2026-07-29",
"086790": "2026-07-29",
"010120": "2026-06-25",
"298040": "2026-06-26",
"403870": "2026-07-07",
"095610": "2026-07-23",
"095610": "2026-07-29",
"093370": "2026-07-20",
"240810": "2026-07-24",
"214450": "2026-07-06",
@@ -169,9 +85,11 @@
"003490": "2026-07-23",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583318+09:00",
"updated_at": "2026-07-28T15:28:01.053364+09:00"
"updated_at": "2026-07-29T15:28:01.493544+09:00"
}
@@ -74,3 +74,13 @@
{"ts": "2026-07-28T09:00:18.830160+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 386, "cost": 2617473, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5628, "target": 8509, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "7,050 vs 5,350"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,368 / 5,350"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:10:01.772811+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 369, "cost": 2620293, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5628, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,628 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-28T10:08:02.800571+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11170, "qty": 305, "proceeds": 3400207, "entry_price": 14266, "pnl": -951596, "pnl_pct": -21.7, "hold_from": "2026-07-22T14:18:05.454214+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,223 (현재 11,220)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,695"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.267343+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 46, "cost": 5424214, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 127950, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.496790+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 45, "cost": 5423313, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 127950, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 127,950"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.043141+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 15, "cost": 1839276, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 212221, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]}
{"ts": "2026-07-29T09:24:10.043313+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134408, "pnl": -358685, "pnl_pct": -4.32, "hold_from": "2026-07-09T09:36:03.488778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "118,952 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,593"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:26:01.932122+09:00", "side": "SELL", "code": "030000", "name": "제일기획", "price": 18940, "qty": 306, "proceeds": 5784339, "entry_price": 18950, "pnl": -15231, "pnl_pct": -0.05, "hold_from": "2026-07-24T10:02:04.469651+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "19,645 (현재 18,950)"}, {"label": "목표/트레일링", "ok": null, "detail": "트레일링 ON"}, {"label": "추세(10일선)", "ok": true, "detail": "18,943"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.413802+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 833, "cost": 5323668, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:18:05.403412+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 27, "proceeds": 3136672, "entry_price": 137222, "pnl": -568884, "pnl_pct": -15.17, "hold_from": "2026-07-24T09:00:09.525183+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 192,006"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.716987+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 85, "proceeds": 10112243, "entry_price": 124176, "pnl": -444341, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.885656+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,006 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,933"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:06:06.546415+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5690, "qty": 755, "proceeds": 4287573, "entry_price": 6936, "pnl": -950193, "pnl_pct": -17.97, "hold_from": "2026-07-28T09:00:18.830154+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,741 (현재 5,700)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,214"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.618813+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 833, "proceeds": 4871861, "entry_price": 6390, "pnl": -451807, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.413801+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,539"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,28 +1,7 @@
{
"cash": 29709545.535499997,
"cash": 26388097.34059999,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 76,
"entry_price": 134385.52631578947,
"entry_at": "2026-07-09T09:36:03.490473+09:00",
"stop": 122793,
"target": 157570,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5164908.463247621,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -34,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.202637+09:00",
"stop": 318647,
"target": 413456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5038910.050638685,
"last_add_price": 356000
@@ -55,12 +34,12 @@
"entry_at": "2026-07-22T09:04:01.849191+09:00",
"stop": 92100,
"target": 119144,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 98,848 도달",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 5640212.3774375,
"last_add_price": 103100
@@ -81,7 +60,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4907020.835552651,
"last_add_price": 90900
@@ -92,20 +71,20 @@
"sources": [
"auto"
],
"qty": 293,
"entry_price": 19100,
"qty": 588,
"entry_price": 19024.744897959183,
"entry_at": "2026-07-27T09:02:06.267735+09:00",
"stop": 18023,
"target": 21254,
"peak": 19300,
"stop": 18071,
"target": 20933,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,032 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5601008.3746875,
"last_add_price": 19100
"last_add_price": 18950
},
"218150": {
"code": "218150",
@@ -113,48 +92,48 @@
"sources": [
"interest"
],
"qty": 1233,
"entry_price": 2130,
"qty": 2579,
"entry_price": 2036.5785188057387,
"entry_at": "2026-07-27T14:20:01.093221+09:00",
"stop": 1775,
"target": 2840,
"peak": 2235,
"target": 2720,
"peak": 2450,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 2,135 도달",
"cur_price": 1941,
"tranches": 1,
"cur_price": 1805,
"tranches": 2,
"tranche_value": 2627079.6319200005,
"last_add_price": 2130
"last_add_price": 1951
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 979,
"entry_price": 6936.241062308478,
"entry_at": "2026-07-28T09:00:18.935354+09:00",
"stop": 6040,
"target": 8729,
"peak": 7780,
"qty": 87,
"entry_price": 119185.05747126437,
"entry_at": "2026-07-29T09:02:02.269059+09:00",
"stop": 111408,
"target": 134739,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 3400860.5857869796,
"last_add_price": 7100
"tranche_value": 5278498.658468749,
"last_add_price": 120500
}
},
"realized_pnl": -14457310.749000017,
"closed_trades": 36,
"realized_pnl": -16197005.716500018,
"closed_trades": 39,
"wins": 4,
"peak_equity": 101501376.42350003,
"max_drawdown": 0.17474704790203693,
"max_drawdown": 0.18836080609517294,
"last_exit": {
"086790": "2026-07-20",
"030000": "2026-07-24",
@@ -168,9 +147,11 @@
"214450": "2026-07-03",
"319660": "2026-07-23",
"105560": "2026-07-20",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583333+09:00",
"updated_at": "2026-07-28T15:28:01.055017+09:00"
"updated_at": "2026-07-29T15:28:01.495153+09:00"
}
@@ -102,3 +102,11 @@
{"ts": "2026-07-28T09:00:18.935361+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6780, "qty": 501, "cost": 3397290, "path": "pullback", "reason": "눌림목 지정가 7,884 도달", "stop": 5916, "target": 8509, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "7,050 vs 4,855"}, {"label": "정배열(5>20)", "ok": true, "detail": "6,368 / 4,855"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,368 / 4,882"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+73.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +86 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.01% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "813 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "0.01% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "69"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,884 (현재 7,050)"}]}
{"ts": "2026-07-28T09:02:04.781522+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 392, "proceeds": 4663528, "entry_price": 14266, "pnl": -929711, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.455954+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(20일선)", "ok": false, "detail": "12,673"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T09:10:01.774527+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 478, "cost": 3394309, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(20일선)", "ok": true, "detail": "4,857"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-29T09:02:02.269060+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "117,800 vs 113,445"}, {"label": "정배열(5>20)", "ok": true, "detail": "117,020 / 113,445"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.498540+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(20일선)", "ok": true, "detail": "113,580"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.045434+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 295, "cost": 5591089, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 18023, "target": 21254, "signals": [{"label": "손절선", "ok": true, "detail": "18,023 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,254"}, {"label": "추세(20일선)", "ok": true, "detail": "18,884"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,418"}]}
{"ts": "2026-07-29T09:24:10.045608+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 76, "proceeds": 9754541, "entry_price": 134386, "pnl": -460291, "pnl_pct": -4.31, "hold_from": "2026-07-09T09:36:03.490473+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,793 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,570"}, {"label": "추세(20일선)", "ok": true, "detail": "107,870"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:10.045809+09:00", "side": "BUY", "code": "218150", "name": "미래생명자원", "price": 1951, "qty": 1346, "cost": 2626440, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 1775, "target": 2840, "signals": [{"label": "손절선", "ok": true, "detail": "1,775 (현재 2,450)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 2,840"}, {"label": "추세(20일선)", "ok": true, "detail": "2,005"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +40 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 2,287"}]}
{"ts": "2026-07-29T09:28:01.415512+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 829, "cost": 5298105, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(20일선 위)", "ok": true, "detail": "6,380 vs 5,358"}, {"label": "정배열(5>20)", "ok": true, "detail": "5,742 / 5,358"}, {"label": "추세 기울기(20일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:42:05.443994+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 829, "proceeds": 4947753, "entry_price": 6390, "pnl": -350352, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.415511+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(20일선)", "ok": true, "detail": "5,338"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.454862+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 979, "proceeds": 5862546, "entry_price": 6936, "pnl": -929053, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:18.935354+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(20일선)", "ok": true, "detail": "4,803"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 31066735.131500013,
"cash": 40998358.9225,
"initial": 100000000,
"positions": {
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 89,
"entry_price": 124177.52808988764,
"entry_at": "2026-07-02T10:18:03.889699+09:00",
"stop": 114299,
"target": 143934,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 122,215 도달",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5572324.860088777,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 77,
"entry_price": 134418.18181818182,
"entry_at": "2026-07-09T09:36:03.492141+09:00",
"stop": 122826,
"target": 157603,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 5242158.578984787,
"last_add_price": 136900
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.204321+09:00",
"stop": 318647,
"target": 413456,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 5033450.427529937,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4951509.819030465,
"last_add_price": 90900
@@ -92,50 +50,50 @@
"sources": [
"auto"
],
"qty": 298,
"entry_price": 18950,
"qty": 596,
"entry_price": 18950.0,
"entry_at": "2026-07-24T10:02:04.472960+09:00",
"stop": 17843,
"target": 21164,
"peak": 19300,
"stop": 17996,
"target": 20858,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,012 도달",
"cur_price": 18810,
"tranches": 1,
"cur_price": 18800,
"tranches": 2,
"tranche_value": 5662520.118343751,
"last_add_price": 18950
},
"003680": {
"code": "003680",
"name": "한성기업",
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 973,
"entry_price": 6936.217882836588,
"entry_at": "2026-07-28T09:00:19.039792+09:00",
"stop": 6040,
"target": 8729,
"peak": 7780,
"qty": 87,
"entry_price": 119185.05747126437,
"entry_at": "2026-07-29T09:02:02.270985+09:00",
"stop": 111408,
"target": 134739,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 7,884 도달",
"cur_price": 6400,
"entry_reason": "눌림목 지정가 118,115 도달",
"cur_price": 116500,
"tranches": 2,
"tranche_value": 3378406.3450362855,
"last_add_price": 7100
"tranche_value": 5234858.44571875,
"last_add_price": 120500
}
},
"realized_pnl": -15472406.942500016,
"closed_trades": 32,
"realized_pnl": -17677343.36250002,
"closed_trades": 36,
"wins": 2,
"peak_equity": 101258161.16350003,
"max_drawdown": 0.17624066867247043,
"max_drawdown": 0.19142992543288662,
"last_exit": {
"086790": "2026-06-26",
"086790": "2026-07-29",
"030000": "2026-07-16",
"403870": "2026-07-02",
"010120": "2026-06-25",
@@ -148,9 +106,11 @@
"214450": "2026-07-14",
"105560": "2026-07-20",
"024060": "2026-07-27",
"003680": "2026-07-27",
"252990": "2026-07-28"
"003680": "2026-07-29",
"252990": "2026-07-28",
"010950": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583347+09:00",
"updated_at": "2026-07-28T15:28:01.056632+09:00"
"updated_at": "2026-07-29T15:28:01.496779+09:00"
}
@@ -89,3 +89,11 @@
{"ts": "2026-07-28T09:02:04.783208+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11920, "qty": 396, "proceeds": 4711115, "entry_price": 14266, "pnl": -939212, "pnl_pct": -16.45, "hold_from": "2026-07-22T14:18:05.457812+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,984 (현재 11,960)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 18,831"}, {"label": "추세(10일선)", "ok": false, "detail": "12,769"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 -61"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T09:04:02.772593+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 15, "proceeds": 1844396, "entry_price": 155500, "pnl": -488453, "pnl_pct": -20.77, "hold_from": "2026-07-24T09:00:09.727869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "127,139 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 212,221"}, {"label": "추세(10일선)", "ok": false, "detail": "149,940"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 166,050"}]}
{"ts": "2026-07-28T09:10:01.776214+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 7100, "qty": 475, "cost": 3373006, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5916, "target": 8509, "signals": [{"label": "손절선", "ok": true, "detail": "5,916 (현재 7,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,509"}, {"label": "추세(10일선)", "ok": true, "detail": "5,354"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +86 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 7,079"}]}
{"ts": "2026-07-29T09:02:02.270986+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 117900, "qty": 44, "cost": 5188378, "path": "pullback", "reason": "눌림목 지정가 118,115 도달", "stop": 111200, "target": 131300, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "117,800 vs 116,390"}, {"label": "정배열(5>10)", "ok": true, "detail": "117,020 / 116,390"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "117,020 / 109,982"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +39 · 기 +307 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+26%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.03% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": false, "detail": "44,660 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": false, "detail": "0.03% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "57"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 118,115 (현재 117,800)"}]}
{"ts": "2026-07-29T09:16:04.500289+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 120500, "qty": 43, "cost": 5182277, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 111200, "target": 131300, "signals": [{"label": "손절선", "ok": true, "detail": "111,200 (현재 120,500)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,300"}, {"label": "추세(10일선)", "ok": true, "detail": "116,660"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +39 · 기 +307"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 120,492"}]}
{"ts": "2026-07-29T09:24:10.047648+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 18950, "qty": 298, "cost": 5647947, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 17843, "target": 21164, "signals": [{"label": "손절선", "ok": true, "detail": "17,843 (현재 20,750)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 21,164"}, {"label": "추세(10일선)", "ok": true, "detail": "18,901"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +99 · 기 +138"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 19,268"}]}
{"ts": "2026-07-29T09:24:10.047791+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 77, "proceeds": 9882891, "entry_price": 134418, "pnl": -468862, "pnl_pct": -4.33, "hold_from": "2026-07-09T09:36:03.492141+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "122,826 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 157,603"}, {"label": "추세(10일선)", "ok": true, "detail": "105,620"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.417217+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 822, "cost": 5253368, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5998, "target": 7174, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,380 vs 5,591"}, {"label": "정배열(5>10)", "ok": true, "detail": "5,742 / 5,591"}, {"label": "추세 기울기(10일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:42:05.445723+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5980, "qty": 822, "proceeds": 4905975, "entry_price": 6390, "pnl": -347393, "pnl_pct": -6.42, "hold_from": "2026-07-29T09:28:01.417216+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,998 (현재 5,980)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,174"}, {"label": "추세(10일선)", "ok": true, "detail": "5,551"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +77 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,521"}]}
{"ts": "2026-07-29T11:18:04.456547+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6000, "qty": 973, "proceeds": 5826616, "entry_price": 6936, "pnl": -923336, "pnl_pct": -13.5, "hold_from": "2026-07-28T09:00:19.039792+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,040 (현재 6,020)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 8,729"}, {"label": "추세(10일선)", "ok": true, "detail": "5,246"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:04:01.720263+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 89, "proceeds": 10588113, "entry_price": 124178, "pnl": -465345, "pnl_pct": -4.01, "hold_from": "2026-07-02T10:18:03.889699+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "114,299 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 143,934"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 51098905.55800001,
"cash": 56500758.92050001,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.598088+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4019229.444473994,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.479634+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4444963.71074213,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.209787+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3627364.7637924887,
"last_add_price": 356000
@@ -81,19 +39,61 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559940.05276684,
"last_add_price": 92800
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.560863+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2259605.2304230183,
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.482559+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4841528.853832099,
"last_add_price": 123400
}
},
"realized_pnl": -18179986.967000037,
"closed_trades": 81,
"realized_pnl": -20238352.469500042,
"closed_trades": 85,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.19091694441999987,
"max_drawdown": 0.2130664107949999,
"last_exit": {
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -106,7 +106,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -117,9 +117,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-28",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621011+09:00",
"updated_at": "2026-07-28T15:28:01.063168+09:00"
"updated_at": "2026-07-29T15:28:01.503198+09:00"
}
@@ -181,3 +181,13 @@
{"ts": "2026-07-28T09:04:02.776911+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.040447+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.178002+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.372323+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.856624+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.380398+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.560882+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.828619+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.833245+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.860256+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.828601+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:13.501879+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.017996+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.598088+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.019871+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.482560+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.724599+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.479634+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.478291+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.833239+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 50578135.040500015,
"cash": 56918920.823500015,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.604940+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4019229.444473994,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.484444+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4444963.71074213,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,45 +13,87 @@
"entry_at": "2026-07-21T12:06:01.213387+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3627364.7637924887,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.048280+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.846251+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2230375.77623366,
"last_add_price": 122600
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 258,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.681124+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5013998.744343751,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.484865+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 3439647.5899249003,
"last_add_price": 97000
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4760241.173848085,
"last_add_price": 123400
}
},
"realized_pnl": -18942593.75450004,
"closed_trades": 81,
"realized_pnl": -21967252.577500045,
"closed_trades": 87,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.20137464959499984,
"max_drawdown": 0.2253959180249998,
"last_exit": {
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -106,7 +106,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -118,8 +118,11 @@
"024060": "2026-07-27",
"089970": "2026-07-28",
"095610": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"078930": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583395+09:00",
"updated_at": "2026-07-28T15:28:01.064851+09:00"
"updated_at": "2026-07-29T15:28:01.504880+09:00"
}
@@ -182,3 +182,17 @@
{"ts": "2026-07-28T09:02:05.152339+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:21.177282+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:04:02.780707+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.055078+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.309071+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.388448+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.846254+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.846969+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.847473+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 321, "cost": 2099655, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.877039+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.846965+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.037485+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.038681+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.604940+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.039031+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.039419+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.048280+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.425653+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 762, "cost": 4869910, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:06:01.681126+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.484866+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.728248+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.484444+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.481087+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 633, "proceeds": 3525252, "entry_price": 6624, "pnl": -668237, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.847470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,696"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.630159+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 762, "proceeds": 4456613, "entry_price": 6390, "pnl": -413298, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.425652+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 49649838.86299999,
"cash": 57589786.01599998,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.609794+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.486327+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.215189+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
@@ -92,30 +50,51 @@
"sources": [
"auto"
],
"qty": 15,
"entry_price": 127400,
"qty": 31,
"entry_price": 124922.58064516129,
"entry_at": "2026-07-28T09:00:22.236421+09:00",
"stop": 100700,
"target": 207500,
"peak": 127400,
"target": 197590,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 145,639 도달",
"cur_price": 121400,
"tranches": 1,
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2001993.4324754681,
"last_add_price": 127400
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.486776+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4871303.908250191,
"last_add_price": 123400
}
},
"realized_pnl": -17717767.012000035,
"closed_trades": 82,
"realized_pnl": -19695807.33400004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1874376113700001,
"max_drawdown": 0.20743113984000028,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -139,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621059+09:00",
"updated_at": "2026-07-28T15:28:01.066504+09:00"
"updated_at": "2026-07-29T15:28:01.506483+09:00"
}
@@ -184,3 +184,12 @@
{"ts": "2026-07-28T09:02:05.157994+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.238861+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T11:04:04.318095+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.394527+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.860205+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.395174+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.852674+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.853697+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.882758+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.852671+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.752249+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.609794+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.044058+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]}
{"ts": "2026-07-29T09:24:16.044758+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.486777+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.729949+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.486327+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.482773+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.853694+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 40660918.31349999,
"cash": 57785184.154499985,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.613925+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.488191+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,67 +13,88 @@
"entry_at": "2026-07-21T12:06:01.216956+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.051685+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.858523+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"tranche_value": 2241144.287326385,
"last_add_price": 122600
},
"090850": {
"code": "090850",
"name": "현대이지웰",
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 1649,
"entry_price": 6264.329896907217,
"entry_at": "2026-07-27T10:08:01.536340+09:00",
"stop": 5749,
"target": 7811,
"peak": 6330,
"qty": 261,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.685721+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.488774+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"tranches": 2,
"tranche_value": 5169643.818279762,
"last_add_price": 6330
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4804885.651525278,
"last_add_price": 123400
}
},
"realized_pnl": -18528380.999500036,
"closed_trades": 82,
"wins": 1,
"realized_pnl": -21042870.53000004,
"closed_trades": 88,
"wins": 2,
"peak_equity": 100000000,
"max_drawdown": 0.19781411686500014,
"max_drawdown": 0.21633495845500023,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -140,8 +119,11 @@
"024060": "2026-07-27",
"095610": "2026-07-27",
"089970": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
"078930": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583512+09:00",
"updated_at": "2026-07-28T15:28:01.068173+09:00"
"updated_at": "2026-07-29T15:28:01.508171+09:00"
}
@@ -186,3 +186,16 @@
{"ts": "2026-07-28T09:02:05.163641+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.343276+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:08:03.996066+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]}
{"ts": "2026-07-28T11:04:04.324859+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.399867+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.858527+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.858920+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.859296+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.888088+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.858917+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.763197+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.613925+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.050104+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.050765+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.089397+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.536340+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.090229+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.051685+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T10:06:01.685723+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.488775+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.731619+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.488191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.484421+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.859292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 51084656.44299999,
"cash": 56486509.805499986,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.617956+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.490106+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.218730+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,20 +39,62 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.864085+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2259210.8123524096,
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.490553+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4840682.195130728,
"last_add_price": 123400
}
},
"realized_pnl": -18194236.082000036,
"closed_trades": 82,
"realized_pnl": -20252601.58450004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1910594355700001,
"max_drawdown": 0.21320890194500014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -118,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-28",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621103+09:00",
"updated_at": "2026-07-28T15:28:01.069817+09:00"
"updated_at": "2026-07-29T15:28:01.509777+09:00"
}
@@ -183,3 +183,13 @@
{"ts": "2026-07-28T09:04:02.785741+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.069914+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.330117+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.405004+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.863524+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.405459+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.864088+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.864615+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.864930+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.892932+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.864612+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.096041+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.096635+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.617956+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.096834+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.490554+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.733300+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.490106+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.486092+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.864927+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 50515878.72549999,
"cash": 56858178.75599999,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.621641+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.491941+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,46 +13,88 @@
"entry_at": "2026-07-21T12:06:01.220511+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.055082+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.869049+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2228652.5102171055,
"last_add_price": 122600
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 258,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.689842+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.492475+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4756556.382853909,
"last_add_price": 123400
}
},
"realized_pnl": -19004850.069500037,
"closed_trades": 82,
"realized_pnl": -22027994.645000044,
"closed_trades": 88,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.20199721274500013,
"max_drawdown": 0.22600355297000022,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -119,8 +119,11 @@
"024060": "2026-07-27",
"089970": "2026-07-28",
"095610": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"078930": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583628+09:00",
"updated_at": "2026-07-28T15:28:01.071489+09:00"
"updated_at": "2026-07-29T15:28:01.511434+09:00"
}
@@ -184,3 +184,17 @@
{"ts": "2026-07-28T09:02:05.173069+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.557322+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:04:02.787464+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.073760+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.335818+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.409242+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.869052+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.869334+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.869641+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.897237+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.869331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.101043+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.101498+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.621641+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.101678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.101931+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.055082+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.432391+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:06:01.689843+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.492476+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.734950+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.491941+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.487757+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.869638+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.636752+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.432390+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 49649838.86299999,
"cash": 57589786.01599998,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.625003+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.493778+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.222302+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
@@ -92,30 +50,51 @@
"sources": [
"auto"
],
"qty": 15,
"entry_price": 127400,
"qty": 31,
"entry_price": 124922.58064516129,
"entry_at": "2026-07-28T09:00:22.654170+09:00",
"stop": 100700,
"target": 207500,
"peak": 127400,
"target": 197590,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 145,639 도달",
"cur_price": 121400,
"tranches": 1,
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2001993.4324754681,
"last_add_price": 127400
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.494208+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4871303.908250191,
"last_add_price": 123400
}
},
"realized_pnl": -17717767.012000035,
"closed_trades": 82,
"realized_pnl": -19695807.33400004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1874376113700001,
"max_drawdown": 0.20743113984000028,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -139,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621148+09:00",
"updated_at": "2026-07-28T15:28:01.073137+09:00"
"updated_at": "2026-07-29T15:28:01.513048+09:00"
}
@@ -184,3 +184,12 @@
{"ts": "2026-07-28T09:02:05.176805+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.656440+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T11:04:04.340373+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.413097+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.866841+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.413474+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.873530+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.874061+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.901236+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.873528+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.778343+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.625003+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.105837+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]}
{"ts": "2026-07-29T09:24:16.106263+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.494210+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.736617+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.493778+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.489432+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.874058+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 40660918.31349999,
"cash": 57785184.154499985,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.628145+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.495609+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,67 +13,88 @@
"entry_at": "2026-07-21T12:06:01.224085+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.058470+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.877598+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"tranche_value": 2241144.287326385,
"last_add_price": 122600
},
"090850": {
"code": "090850",
"name": "현대이지웰",
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 1649,
"entry_price": 6264.329896907217,
"entry_at": "2026-07-27T10:08:01.566451+09:00",
"stop": 5749,
"target": 7811,
"peak": 6330,
"qty": 261,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.693595+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.496122+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"tranches": 2,
"tranche_value": 5169643.818279762,
"last_add_price": 6330
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4804885.651525278,
"last_add_price": 123400
}
},
"realized_pnl": -18528380.999500036,
"closed_trades": 82,
"wins": 1,
"realized_pnl": -21042870.53000004,
"closed_trades": 88,
"wins": 2,
"peak_equity": 100000000,
"max_drawdown": 0.19781411686500014,
"max_drawdown": 0.21633495845500023,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -140,8 +119,11 @@
"024060": "2026-07-27",
"095610": "2026-07-27",
"089970": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
"078930": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.583751+09:00",
"updated_at": "2026-07-28T15:28:01.074797+09:00"
"updated_at": "2026-07-29T15:28:01.514690+09:00"
}
@@ -186,3 +186,16 @@
{"ts": "2026-07-28T09:02:05.180474+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.762227+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:08:04.003988+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]}
{"ts": "2026-07-28T11:04:04.344687+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.416912+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.877600+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.878069+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.878333+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.904794+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.878067+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.782637+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.628145+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.109832+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.110260+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.110361+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.566451+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.110570+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.058470+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T10:06:01.693597+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.496123+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.738264+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.495609+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.491085+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.878331+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 49649838.86299999,
"cash": 57589786.01599998,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.631281+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.497447+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.225869+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
@@ -92,30 +50,51 @@
"sources": [
"auto"
],
"qty": 15,
"entry_price": 127400,
"qty": 31,
"entry_price": 124922.58064516129,
"entry_at": "2026-07-28T09:00:22.865306+09:00",
"stop": 100700,
"target": 207500,
"peak": 127400,
"target": 197590,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 145,639 도달",
"cur_price": 121400,
"tranches": 1,
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2001993.4324754681,
"last_add_price": 127400
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.497839+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4871303.908250191,
"last_add_price": 123400
}
},
"realized_pnl": -17717767.012000035,
"closed_trades": 82,
"realized_pnl": -19695807.33400004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1874376113700001,
"max_drawdown": 0.20743113984000028,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -139,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621367+09:00",
"updated_at": "2026-07-28T15:28:01.076428+09:00"
"updated_at": "2026-07-29T15:28:01.516298+09:00"
}
@@ -184,3 +184,12 @@
{"ts": "2026-07-28T09:02:05.183846+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.867792+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T11:04:04.348495+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.420411+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.870210+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.420750+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.881974+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.882678+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.908096+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.881971+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.787032+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.631281+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.113992+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]}
{"ts": "2026-07-29T09:24:16.114377+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.497840+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.739932+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.497447+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.492765+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.882675+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 40660918.31349999,
"cash": 57785184.154499985,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.634235+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.499281+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,67 +13,88 @@
"entry_at": "2026-07-21T12:06:01.227631+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.061860+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.886191+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"tranche_value": 2241144.287326385,
"last_add_price": 122600
},
"090850": {
"code": "090850",
"name": "현대이지웰",
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 1649,
"entry_price": 6264.329896907217,
"entry_at": "2026-07-27T10:08:01.575360+09:00",
"stop": 5749,
"target": 7811,
"peak": 6330,
"qty": 261,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.697079+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.499758+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"tranches": 2,
"tranche_value": 5169643.818279762,
"last_add_price": 6330
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4804885.651525278,
"last_add_price": 123400
}
},
"realized_pnl": -18528380.999500036,
"closed_trades": 82,
"wins": 1,
"realized_pnl": -21042870.53000004,
"closed_trades": 88,
"wins": 2,
"peak_equity": 100000000,
"max_drawdown": 0.19781411686500014,
"max_drawdown": 0.21633495845500023,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -140,8 +119,11 @@
"024060": "2026-07-27",
"095610": "2026-07-27",
"089970": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
"078930": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.584337+09:00",
"updated_at": "2026-07-28T15:28:01.078112+09:00"
"updated_at": "2026-07-29T15:28:01.517970+09:00"
}
@@ -186,3 +186,16 @@
{"ts": "2026-07-28T09:02:05.187123+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:22.973479+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:08:04.007703+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]}
{"ts": "2026-07-28T11:04:04.351959+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.423980+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.886193+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.886438+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.886711+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.911385+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.886436+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.791290+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.634235+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.117511+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.117904+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.118017+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.575360+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.118212+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.061860+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T10:06:01.697080+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.499759+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.741599+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.499281+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.494436+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.886709+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 49649838.86299999,
"cash": 57589786.01599998,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.637074+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.501109+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.229400+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
@@ -92,30 +50,51 @@
"sources": [
"auto"
],
"qty": 15,
"entry_price": 127400,
"qty": 31,
"entry_price": 124922.58064516129,
"entry_at": "2026-07-28T09:00:23.083067+09:00",
"stop": 100700,
"target": 207500,
"peak": 127400,
"target": 197590,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 145,639 도달",
"cur_price": 121400,
"tranches": 1,
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2001993.4324754681,
"last_add_price": 127400
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.501484+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4871303.908250191,
"last_add_price": 123400
}
},
"realized_pnl": -17717767.012000035,
"closed_trades": 82,
"realized_pnl": -19695807.33400004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1874376113700001,
"max_drawdown": 0.20743113984000028,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -139,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-27",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621411+09:00",
"updated_at": "2026-07-28T15:28:01.079764+09:00"
"updated_at": "2026-07-29T15:28:01.519575+09:00"
}
@@ -184,3 +184,12 @@
{"ts": "2026-07-28T09:02:05.190368+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.085292+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T11:04:04.355300+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.427159+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.873589+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.427506+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.890374+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.890820+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 326, "cost": 2132360, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.914482+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.890372+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.794976+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.637074+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.120986+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 16, "cost": 1961894, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 207500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 207,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 136,642"}]}
{"ts": "2026-07-29T09:24:16.121327+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 318, "cost": 2134100, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.501485+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.743276+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.501109+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.496111+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 644, "proceeds": 3586513, "entry_price": 6624, "pnl": -679947, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.890818+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 40660918.31349999,
"cash": 57785184.154499985,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.639710+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.502941+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,67 +13,88 @@
"entry_at": "2026-07-21T12:06:01.231187+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.065284+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.894214+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"tranche_value": 2241144.287326385,
"last_add_price": 122600
},
"090850": {
"code": "090850",
"name": "현대이지웰",
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 1649,
"entry_price": 6264.329896907217,
"entry_at": "2026-07-27T10:08:01.583221+09:00",
"stop": 5749,
"target": 7811,
"peak": 6330,
"qty": 261,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.700459+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5059022.326624999,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.503402+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"tranches": 2,
"tranche_value": 5169643.818279762,
"last_add_price": 6330
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4804885.651525278,
"last_add_price": 123400
}
},
"realized_pnl": -18528380.999500036,
"closed_trades": 82,
"wins": 1,
"realized_pnl": -21042870.53000004,
"closed_trades": 88,
"wins": 2,
"peak_equity": 100000000,
"max_drawdown": 0.19781411686500014,
"max_drawdown": 0.21633495845500023,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -128,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -140,8 +119,11 @@
"024060": "2026-07-27",
"095610": "2026-07-27",
"089970": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"090850": "2026-07-29",
"078930": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.584451+09:00",
"updated_at": "2026-07-28T15:28:01.081472+09:00"
"updated_at": "2026-07-29T15:28:01.521221+09:00"
}
@@ -186,3 +186,16 @@
{"ts": "2026-07-28T09:02:05.193260+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.187316+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:08:04.011207+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6330, "qty": 816, "cost": 5166055, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5696, "target": 7712, "signals": [{"label": "손절선", "ok": true, "detail": "5,696 (현재 6,330)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,712"}, {"label": "추세(60일선)", "ok": true, "detail": "5,621"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +28 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,329"}]}
{"ts": "2026-07-28T11:04:04.358573+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.430247+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.894216+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.894468+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.894695+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 322, "cost": 2106196, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.917387+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.894466+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:12:01.798678+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 130000, "qty": 59, "proceeds": 7655044, "entry_price": 134561, "pnl": -285247, "pnl_pct": -3.39, "hold_from": "2026-07-09T09:10:02.639710+09:00", "reason": "시간손절 — 20일 보유·진전 없음(자본 회전)", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "119,105 (현재 130,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "113,197"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.124038+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.124352+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 314, "cost": 2107256, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.124448+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 6290, "qty": 1649, "proceeds": 10351984, "entry_price": 6264, "pnl": 20555, "pnl_pct": 0.41, "hold_from": "2026-07-27T10:08:01.583221+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,749 (현재 5,690)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,811"}, {"label": "추세(60일선)", "ok": true, "detail": "5,618"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.124606+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.065284+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T10:06:01.700460+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 261, "cost": 5056328, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.503403+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.744951+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.502941+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.497779+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 636, "proceeds": 3541960, "entry_price": 6624, "pnl": -671492, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.894692+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 51084656.44299999,
"cash": 56486509.805499986,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.642364+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.504788+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.232986+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,20 +39,62 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.897785+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2259210.8123524096,
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.505138+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4840682.195130728,
"last_add_price": 123400
}
},
"realized_pnl": -18194236.082000036,
"closed_trades": 82,
"realized_pnl": -20252601.58450004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1910594355700001,
"max_drawdown": 0.21320890194500014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -118,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-28",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621453+09:00",
"updated_at": "2026-07-28T15:28:01.083126+09:00"
"updated_at": "2026-07-29T15:28:01.522836+09:00"
}
@@ -183,3 +183,13 @@
{"ts": "2026-07-28T09:04:02.799213+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.095509+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.361578+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.433086+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.876948+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.433374+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.897787+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.898192+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.898399+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.920069+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.898191+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.127062+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.127328+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.642364+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.127443+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.505139+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.746642+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.504788+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.499492+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.898397+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 50515878.72549999,
"cash": 56858178.75599999,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.644830+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.506650+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,46 +13,88 @@
"entry_at": "2026-07-21T12:06:01.234767+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.068736+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.901179+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2228652.5102171055,
"last_add_price": 122600
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 258,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.704223+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.507058+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4756556.382853909,
"last_add_price": 123400
}
},
"realized_pnl": -19004850.069500037,
"closed_trades": 82,
"realized_pnl": -22027994.645000044,
"closed_trades": 88,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.20199721274500013,
"max_drawdown": 0.22600355297000022,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -119,8 +119,11 @@
"024060": "2026-07-27",
"089970": "2026-07-28",
"095610": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"078930": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.584565+09:00",
"updated_at": "2026-07-28T15:28:01.084781+09:00"
"updated_at": "2026-07-29T15:28:01.524546+09:00"
}
@@ -184,3 +184,17 @@
{"ts": "2026-07-28T09:02:05.198714+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.381365+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:04:02.800932+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.098143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.364335+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.435998+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.901181+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.901397+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.901614+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.922720+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.901396+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.129998+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.130260+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.644830+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.130359+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.130502+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.068736+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.445606+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:06:01.704224+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.507059+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.748392+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.506650+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.501159+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.901612+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.649726+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.445604+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,49 +1,7 @@
{
"cash": 51084656.44299999,
"cash": 56486509.805499986,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.647351+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.508514+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,12 +13,12 @@
"entry_at": "2026-07-21T12:06:01.236516+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
@@ -81,20 +39,62 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 3559349.4158756477,
"last_add_price": 92800
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.904456+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2259210.8123524096,
"last_add_price": 122600
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 39,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.508786+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4840682.195130728,
"last_add_price": 123400
}
},
"realized_pnl": -18194236.082000036,
"closed_trades": 82,
"realized_pnl": -20252601.58450004,
"closed_trades": 86,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.1910594355700001,
"max_drawdown": 0.21320890194500014,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -118,9 +118,10 @@
"222800": "2026-07-21",
"089970": "2026-07-27",
"095610": "2026-07-28",
"003680": "2026-07-28",
"138040": "2026-07-28"
"003680": "2026-07-29",
"138040": "2026-07-28",
"010950": "2026-07-29"
},
"created_at": "2026-06-15T14:40:00.621497+09:00",
"updated_at": "2026-07-28T15:28:01.086412+09:00"
"updated_at": "2026-07-29T15:28:01.526150+09:00"
}
@@ -183,3 +183,13 @@
{"ts": "2026-07-28T09:04:02.802654+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.100684+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.366987+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 744, "proceeds": 4893399, "entry_price": 7801, "pnl": -911091, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.438736+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T13:02:00.880299+09:00", "side": "SELL", "code": "138040", "name": "메리츠금융지주", "price": 117400, "qty": 41, "proceeds": 4804014, "entry_price": 127700, "pnl": -432471, "pnl_pct": -8.07, "hold_from": "2026-07-27T09:18:02.438996+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,473 (현재 117,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 158,380"}, {"label": "추세(60일선)", "ok": true, "detail": "109,975"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +84 · 기 +324"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 130,353"}]}
{"ts": "2026-07-29T09:02:02.904458+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.904795+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 39, "cost": 5043456, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.905013+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 325, "cost": 2125819, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.925419+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 39, "proceeds": 4931664, "entry_price": 129300, "pnl": -111792, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.904793+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.132809+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.133049+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.647351+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.133154+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 317, "cost": 2127389, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:24:01.508787+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 39, "cost": 4813322, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.750126+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.508514+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.502828+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 642, "proceeds": 3575374, "entry_price": 6624, "pnl": -677833, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.905011+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,49 +1,7 @@
{
"cash": 50515878.72549999,
"cash": 56858178.75599999,
"initial": 100000000,
"positions": {
"010950": {
"code": "010950",
"name": "S-Oil",
"sources": [
"auto"
],
"qty": 59,
"entry_price": 134561.01694915254,
"entry_at": "2026-07-09T09:10:02.649859+09:00",
"stop": 119105,
"target": 180930,
"peak": 156400,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"tranches": 2,
"tranche_value": 4016046.033999526,
"last_add_price": 136900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 66,
"entry_price": 132600.0,
"entry_at": "2026-07-10T09:26:06.510349+09:00",
"stop": 119729,
"target": 171213,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 4441360.270202171,
"last_add_price": 134300
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -55,46 +13,88 @@
"entry_at": "2026-07-21T12:06:01.238289+09:00",
"stop": 308113,
"target": 476661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3624744.3180141365,
"last_add_price": 356000
},
"078930": {
"code": "078930",
"name": "GS",
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 71,
"entry_price": 95478.87323943662,
"entry_at": "2026-07-24T09:26:01.072143+09:00",
"stop": 83571,
"target": 131203,
"peak": 99800,
"qty": 36,
"entry_price": 122750.0,
"entry_at": "2026-07-29T09:02:02.907686+09:00",
"stop": 100700,
"target": 188900,
"peak": 177000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 144,225 도달",
"cur_price": 113300,
"tranches": 2,
"tranche_value": 2228652.5102171055,
"last_add_price": 122600
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 258,
"entry_price": 19370,
"entry_at": "2026-07-29T10:06:01.707948+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 5010126.595875,
"last_add_price": 19370
},
"138040": {
"code": "138040",
"name": "메리츠금융지주",
"sources": [
"auto"
],
"qty": 38,
"entry_price": 123400,
"entry_at": "2026-07-29T10:24:01.510715+09:00",
"stop": 113016,
"target": 154552,
"peak": 123600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"tranches": 2,
"tranche_value": 3437136.177337996,
"last_add_price": 97000
"cur_price": 116500,
"tranches": 1,
"tranche_value": 4756556.382853909,
"last_add_price": 123400
}
},
"realized_pnl": -19004850.069500037,
"closed_trades": 82,
"realized_pnl": -22027994.645000044,
"closed_trades": 88,
"wins": 1,
"peak_equity": 100000000,
"max_drawdown": 0.20199721274500013,
"max_drawdown": 0.22600355297000022,
"last_exit": {
"017670": "2026-06-19",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"033640": "2026-07-01",
"307950": "2026-07-01",
@@ -107,7 +107,7 @@
"093370": "2026-07-20",
"034730": "2026-07-28",
"032830": "2026-07-27",
"319660": "2026-07-28",
"319660": "2026-07-29",
"011070": "2026-07-24",
"003490": "2026-07-09",
"402340": "2026-07-22",
@@ -119,8 +119,11 @@
"024060": "2026-07-27",
"089970": "2026-07-28",
"095610": "2026-07-28",
"003680": "2026-07-28"
"003680": "2026-07-29",
"010950": "2026-07-29",
"078930": "2026-07-29",
"090850": "2026-07-29"
},
"created_at": "2026-06-15T14:55:00.584680+09:00",
"updated_at": "2026-07-28T15:28:01.088076+09:00"
"updated_at": "2026-07-29T15:28:01.527830+09:00"
}
@@ -184,3 +184,17 @@
{"ts": "2026-07-28T09:02:05.203990+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 38, "proceeds": 4949330, "entry_price": 134100, "pnl": -147234, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.583844+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T09:04:02.804378+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 123200, "qty": 22, "proceeds": 2705115, "entry_price": 160909, "pnl": -835416, "pnl_pct": -23.44, "hold_from": "2026-07-07T10:06:08.103161+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "123,940 (현재 123,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 271,816"}, {"label": "추세(60일선)", "ok": true, "detail": "99,177"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +269 · 기 -554"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-28T11:04:04.369627+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 6590, "qty": 735, "proceeds": 4834205, "entry_price": 7801, "pnl": -900255, "pnl_pct": -15.52, "hold_from": "2026-07-27T09:18:02.441423+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "6,694 (현재 6,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 11,121"}, {"label": "추세(60일선)", "ok": true, "detail": "4,874"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +96 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:02.907687+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122900, "qty": 18, "cost": 2212532, "path": "pullback", "reason": "눌림목 지정가 144,225 도달", "stop": 100700, "target": 189500, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,000 vs 99,167"}, {"label": "정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "165,240 / 99,167"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +453 · 기 -688 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+60%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.50% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "677,200 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.50% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 144,225 (현재 123,000)"}]}
{"ts": "2026-07-29T09:02:02.907871+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 129300, "qty": 38, "cost": 4914137, "path": "pullback", "reason": "눌림목 지정가 155,207 도달", "stop": 129299, "target": 129303, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "128,800 vs 112,705"}, {"label": "정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "163,400 / 112,705"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+52.6%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +505 · 기 -416 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.47% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "426,513 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.47% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "46"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 155,207 (현재 128,800)"}]}
{"ts": "2026-07-29T09:02:02.908065+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 320, "cost": 2093114, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,540 vs 4,873"}, {"label": "정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:04:02.927879+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 126700, "qty": 38, "proceeds": 4805212, "entry_price": 129300, "pnl": -108925, "pnl_pct": -2.01, "hold_from": "2026-07-29T09:02:02.907869+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "129,299 (현재 127,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 129,303"}, {"label": "추세(60일선)", "ok": true, "detail": "112,678"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +505 · 기 -416"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 140,298"}]}
{"ts": "2026-07-29T09:24:16.135482+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 18, "cost": 2207131, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 100700, "target": 189500, "signals": [{"label": "손절선", "ok": true, "detail": "100,700 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 189,500"}, {"label": "추세(60일선)", "ok": true, "detail": "98,255"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 132,142"}]}
{"ts": "2026-07-29T09:24:16.135726+09:00", "side": "SELL", "code": "010950", "name": "S-Oil", "price": 128600, "qty": 59, "proceeds": 7572605, "entry_price": 134561, "pnl": -367686, "pnl_pct": -4.43, "hold_from": "2026-07-09T09:10:02.649859+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,105 (현재 116,900)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 180,930"}, {"label": "추세(60일선)", "ok": true, "detail": "112,898"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +43 · 기 +245"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:24:16.135821+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 312, "cost": 2093834, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(60일선)", "ok": true, "detail": "4,850"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T09:24:16.135956+09:00", "side": "SELL", "code": "078930", "name": "GS", "price": 87700, "qty": 71, "proceeds": 6214558, "entry_price": 95479, "pnl": -565459, "pnl_pct": -8.15, "hold_from": "2026-07-24T09:26:01.072143+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "83,571 (현재 83,200)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 131,203"}, {"label": "추세(60일선)", "ok": true, "detail": "74,768"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -59 · 기 +284"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:28:01.448951+09:00", "side": "BUY", "code": "090850", "name": "현대이지웰", "price": 6390, "qty": 761, "cost": 4863519, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 5867, "target": 7958, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "6,380 vs 5,622"}, {"label": "정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "5,742 / 5,622"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+43.1%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +73 · 기 -3 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.62% (환산) vs 평균 0.22% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 5,700"}, {"label": "거래량 급증", "ok": true, "detail": "134,413 (환산) vs 평균 49,512"}, {"label": "회전율 급증", "ok": true, "detail": "0.62% (환산) vs 평균 0.22%"}, {"label": "RSI", "ok": true, "detail": "73"}]}
{"ts": "2026-07-29T10:06:01.707949+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 258, "cost": 4998210, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "19,370 vs 19,365"}, {"label": "정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 하향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,660 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+26.8%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.73% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "837,068 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.73% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "53"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,370)"}]}
{"ts": "2026-07-29T10:24:01.510716+09:00", "side": "BUY", "code": "138040", "name": "메리츠금융지주", "price": 123400, "qty": 38, "cost": 4689903, "path": "breakout", "reason": "거래량·회전율 동반 전고점 돌파", "stop": 113016, "target": 154552, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "123,400 vs 110,075"}, {"label": "정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "추세 기울기(60일선↑)", "ok": null, "detail": "게이트 끔(완화) · 실제 우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "118,140 / 110,075"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+51.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +47 · 기 +310 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.8/5"}, {"label": "상승여력", "ok": true, "detail": "+20%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.38% (환산) vs 평균 0.17% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": true, "detail": "고점 123,300"}, {"label": "거래량 급증", "ok": true, "detail": "644,676 (환산) vs 평균 289,522"}, {"label": "회전율 급증", "ok": true, "detail": "0.38% (환산) vs 평균 0.17%"}, {"label": "RSI", "ok": true, "detail": "67"}]}
{"ts": "2026-07-29T12:04:01.751805+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 66, "proceeds": 7851859, "entry_price": 132600, "pnl": -901054, "pnl_pct": -10.11, "hold_from": "2026-07-10T09:26:06.510349+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "119,729 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 171,213"}, {"label": "추세(60일선)", "ok": true, "detail": "118,387"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:14:05.504496+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5580, "qty": 632, "proceeds": 3519683, "entry_price": 6624, "pnl": -667265, "pnl_pct": -15.76, "hold_from": "2026-07-29T09:02:02.908063+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,600 (현재 5,590)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,697"}, {"label": "추세(60일선)", "ok": true, "detail": "4,858"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:34:03.653021+09:00", "side": "SELL", "code": "090850", "name": "현대이지웰", "price": 5860, "qty": 761, "proceeds": 4450764, "entry_price": 6390, "pnl": -412755, "pnl_pct": -8.29, "hold_from": "2026-07-29T09:28:01.448950+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,867 (현재 5,860)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 7,958"}, {"label": "추세(60일선)", "ok": true, "detail": "5,613"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +73 · 기 -3"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,525"}]}
@@ -1,5 +1,5 @@
{
"cash": 40915146.733,
"cash": 37411808.638000004,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101100,
"cur_price": 98500,
"tranches": 2,
"tranche_value": 4371332.168068898,
"last_add_price": 105800
@@ -39,32 +39,11 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"cur_price": 126900,
"tranches": 2,
"tranche_value": 3448434.606240806,
"last_add_price": 130800
},
"095610": {
"code": "095610",
"name": "테스",
"sources": [
"auto"
],
"qty": 19,
"entry_price": 149157.8947368421,
"entry_at": "2026-07-09T11:44:04.836352+09:00",
"stop": 110758,
"target": 264357,
"peak": 230500,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 146,218 도달",
"cur_price": 121400,
"tranches": 2,
"tranche_value": 1478967.7315768395,
"last_add_price": 158000
},
"214450": {
"code": "214450",
"name": "파마리서치",
@@ -76,12 +55,12 @@
"entry_at": "2026-07-21T09:02:06.017875+09:00",
"stop": 293113,
"target": 451661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 3417673.0117698065,
"last_add_price": 338000
@@ -97,12 +76,12 @@
"entry_at": "2026-07-21T11:08:01.673418+09:00",
"stop": 92100,
"target": 138700,
"peak": 106000,
"peak": 106700,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 4194789.767858763,
"last_add_price": 105800
@@ -123,17 +102,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 1,
"tranche_value": 3055813.2324855765,
"last_add_price": 92800
},
"003490": {
"code": "003490",
"name": "대한항공",
"sources": [
"auto"
],
"qty": 188,
"entry_price": 25650,
"entry_at": "2026-07-29T09:02:03.586207+09:00",
"stop": 23650,
"target": 31650,
"peak": 26600,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 24650,
"tranches": 1,
"tranche_value": 4829886.125812501,
"last_add_price": 25650
}
},
"realized_pnl": -22851519.08200003,
"closed_trades": 63,
"realized_pnl": -24366358.94700003,
"closed_trades": 65,
"wins": 0,
"peak_equity": 100000000,
"max_drawdown": 0.2360835326699999,
"max_drawdown": 0.2557259136199999,
"last_exit": {
"083450": "2026-07-06",
"278470": "2026-07-14",
@@ -170,8 +170,10 @@
"089970": "2026-07-21",
"034730": "2026-07-28",
"252990": "2026-07-27",
"086790": "2026-07-28"
"086790": "2026-07-28",
"475150": "2026-07-29",
"095610": "2026-07-29"
},
"created_at": "2026-06-16T09:00:03.113416+09:00",
"updated_at": "2026-07-28T15:28:01.089706+09:00"
"updated_at": "2026-07-29T15:28:01.529580+09:00"
}
@@ -149,3 +149,8 @@
{"ts": "2026-07-28T09:00:23.688802+09:00", "side": "BUY", "code": "319660", "name": "피에스케이", "price": 134100, "qty": 36, "cost": 4828324, "path": "pullback", "reason": "눌림목 지정가 156,975 도달", "stop": 134099, "target": 134103, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "133,100 vs 112,777"}, {"label": "정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "164,260 / 112,777"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+45.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +254 · 기 -283 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+37%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "어닝 서프라이즈", "ok": true, "detail": "+ "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.24% (환산) vs 평균 2.68% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 196,500"}, {"label": "거래량 급증", "ok": false, "detail": "359,853 (환산) vs 평균 777,376"}, {"label": "회전율 급증", "ok": false, "detail": "1.24% (환산) vs 평균 2.68%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 156,975 (현재 133,100)"}]}
{"ts": "2026-07-28T09:02:05.206432+09:00", "side": "SELL", "code": "319660", "name": "피에스케이", "price": 130500, "qty": 36, "proceeds": 4688839, "entry_price": 134100, "pnl": -139485, "pnl_pct": -2.68, "hold_from": "2026-07-28T09:00:23.688793+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "134,099 (현재 130,600)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 134,103"}, {"label": "추세(60일선)", "ok": true, "detail": "112,735"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +254 · 기 -283"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 144,573"}]}
{"ts": "2026-07-28T13:08:07.026096+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 124100, "qty": 65, "proceeds": 8050770, "entry_price": 137923, "pnl": -915574, "pnl_pct": -10.02, "hold_from": "2026-07-13T09:58:02.808427+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "124,495 (현재 124,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 178,207"}, {"label": "추세(60일선)", "ok": true, "detail": "118,467"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +122 · 기 -106"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:03.251118+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49600, "qty": 63, "cost": 3125269, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 43550, "target": 67750, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "49,550 vs 47,930"}, {"label": "정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "66,030 / 47,930"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+27.0%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +832 · 기 -202 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+16%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "7.94% (환산) vs 평균 22.47% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 87,700"}, {"label": "거래량 급증", "ok": false, "detail": "2,706,167 (환산) vs 평균 7,655,447"}, {"label": "회전율 급증", "ok": false, "detail": "7.94% (환산) vs 평균 22.47%"}, {"label": "RSI", "ok": true, "detail": "47"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 47,930 (현재 49,550)"}]}
{"ts": "2026-07-29T09:02:03.586226+09:00", "side": "BUY", "code": "003490", "name": "대한항공", "price": 25650, "qty": 188, "cost": 4822923, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 23650, "target": 31650, "signals": [{"label": "추세(60일선 위)", "ok": true, "detail": "25,650 vs 25,162"}, {"label": "정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "추세 기울기(60일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "25,470 / 25,162"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+21.9%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +1,077 · 기 +294 (천주)"}, {"label": "투자의견", "ok": true, "detail": "3.9/5"}, {"label": "상승여력", "ok": true, "detail": "+42%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.13% (환산) vs 평균 0.58% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 28,400"}, {"label": "거래량 급증", "ok": false, "detail": "469,413 (환산) vs 평균 2,146,231"}, {"label": "회전율 급증", "ok": false, "detail": "0.13% (환산) vs 평균 0.58%"}, {"label": "RSI", "ok": true, "detail": "51"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 25,162 (현재 25,650)"}]}
{"ts": "2026-07-29T09:24:16.512599+09:00", "side": "BUY", "code": "475150", "name": "SK이터닉스", "price": 49500, "qty": 63, "cost": 3118968, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 43550, "target": 67750, "signals": [{"label": "손절선", "ok": true, "detail": "43,550 (현재 57,100)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 67,750"}, {"label": "추세(60일선)", "ok": true, "detail": "48,021"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +832 · 기 -202"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 54,378"}]}
{"ts": "2026-07-29T10:50:06.436555+09:00", "side": "SELL", "code": "475150", "name": "SK이터닉스", "price": 43500, "qty": 126, "proceeds": 5470312, "entry_price": 49550, "pnl": -773924, "pnl_pct": -12.21, "hold_from": "2026-07-29T09:02:03.251105+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "43,550 (현재 43,550)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 70,700"}, {"label": "추세(60일선)", "ok": false, "detail": "47,830"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +596 · 기 -203"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T12:00:06.317119+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 110400, "qty": 19, "proceeds": 2093510, "entry_price": 149158, "pnl": -740915, "pnl_pct": -25.98, "hold_from": "2026-07-09T11:44:04.836352+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "110,758 (현재 110,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 264,357"}, {"label": "추세(60일선)", "ok": true, "detail": "98,957"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +449 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 9572403.627999967,
"cash": 16337921.145499967,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,32 +18,11 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101100,
"cur_price": 98500,
"tranches": 2,
"tranche_value": 5402457.352781249,
"last_add_price": 104900
},
"086790": {
"code": "086790",
"name": "하나금융지주",
"sources": [
"auto"
],
"qty": 86,
"entry_price": 124153.48837209302,
"entry_at": "2026-07-02T10:18:04.653371+09:00",
"stop": 111000,
"target": 163614,
"peak": 141800,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 123300,
"tranches": 2,
"tranche_value": 5406063.780281249,
"last_add_price": 126200
},
"010950": {
"code": "010950",
"name": "S-Oil",
@@ -60,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"cur_price": 126900,
"tranches": 2,
"tranche_value": 4939827.041843749,
"last_add_price": 130800
@@ -76,12 +55,12 @@
"entry_at": "2026-07-15T10:30:03.855057+09:00",
"stop": 5490,
"target": 7369,
"peak": 6330,
"peak": 6380,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 6240,
"cur_price": 5980,
"tranches": 2,
"tranche_value": 5291435.503531248,
"last_add_price": 6020
@@ -97,12 +76,12 @@
"entry_at": "2026-07-21T09:02:06.772828+09:00",
"stop": 293113,
"target": 451661,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 4843602.718718749,
"last_add_price": 338000
@@ -123,44 +102,44 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 2,
"tranche_value": 4883011.806843748,
"last_add_price": 84700
},
"095610": {
"code": "095610",
"name": "테스",
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 21,
"entry_price": 155500,
"entry_at": "2026-07-24T09:00:20.070959+09:00",
"stop": 117686,
"target": 268942,
"peak": 155500,
"qty": 241,
"entry_price": 19370,
"entry_at": "2026-07-29T10:18:05.773198+09:00",
"stop": 17897,
"target": 23788,
"peak": 19440,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 121400,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 19,645 도달",
"cur_price": 18800,
"tranches": 1,
"tranche_value": 3269474.5531265526,
"last_add_price": 155500
"tranche_value": 4682248.774874998,
"last_add_price": 19370
}
},
"realized_pnl": -26528152.893000018,
"closed_trades": 28,
"realized_pnl": -29038556.555000022,
"closed_trades": 31,
"wins": 1,
"peak_equity": 100289247.17,
"max_drawdown": 0.25907187734650977,
"max_drawdown": 0.2948997710030375,
"last_exit": {
"278470": "2026-06-18",
"017670": "2026-06-19",
"059090": "2026-06-26",
"030000": "2026-07-15",
"086790": "2026-06-23",
"086790": "2026-07-29",
"005930": "2026-06-23",
"055550": "2026-06-24",
"347850": "2026-06-25",
@@ -174,9 +153,10 @@
"475150": "2026-07-08",
"214450": "2026-07-15",
"089970": "2026-07-21",
"095610": "2026-07-23",
"252990": "2026-07-28"
"095610": "2026-07-29",
"252990": "2026-07-28",
"003680": "2026-07-29"
},
"created_at": "2026-06-16T09:00:03.113433+09:00",
"updated_at": "2026-07-28T15:28:01.091321+09:00"
"updated_at": "2026-07-29T15:28:01.531220+09:00"
}
@@ -79,3 +79,10 @@
{"ts": "2026-07-24T09:00:20.070965+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 155500, "qty": 21, "cost": 3265990, "path": "immediate", "reason": "조건 충족 — 즉시매수(눌림 안 기다림)", "stop": 117686, "target": 268942, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "155,000 vs 153,080"}, {"label": "정배열(5>10)", "ok": true, "detail": "171,640 / 153,080"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "171,640 / 99,700"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+44.3%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +200 · 기 -454 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+27%"}, {"label": "목표가 리비전", "ok": true, "detail": "상향 "}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "3.77% (환산) vs 평균 3.06% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 202,500"}, {"label": "거래량 급증", "ok": false, "detail": "730,327 (환산) vs 평균 591,925"}, {"label": "회전율 급증", "ok": false, "detail": "3.77% (환산) vs 평균 3.06%"}, {"label": "RSI", "ok": true, "detail": "59"}, {"label": "눌림목 도달", "ok": false, "detail": "지정가 153,080 (현재 155,000)"}]}
{"ts": "2026-07-24T09:28:05.015566+09:00", "side": "BUY", "code": "252990", "name": "샘씨엔에스", "price": 14510, "qty": 251, "cost": 3642556, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 10973, "target": 22922, "signals": [{"label": "손절선", "ok": true, "detail": "10,973 (현재 15,400)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 22,922"}, {"label": "추세(10일선)", "ok": true, "detail": "13,113"}, {"label": "수급(외/기)", "ok": true, "detail": "외 -857 · 기 +1,172"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 14,721"}]}
{"ts": "2026-07-28T10:10:00.993124+09:00", "side": "SELL", "code": "252990", "name": "샘씨엔에스", "price": 11140, "qty": 512, "proceeds": 5692558, "entry_price": 14230, "pnl": -1594105, "pnl_pct": -21.71, "hold_from": "2026-07-23T10:24:01.900022+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "11,186 (현재 11,180)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 23,359"}, {"label": "추세(10일선)", "ok": false, "detail": "12,691"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +106 · 기 -64"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T09:02:03.597613+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6540, "qty": 598, "cost": 3911507, "path": "pullback", "reason": "눌림목 지정가 7,526 도달", "stop": 5295, "target": 10276, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "6,540 vs 5,298"}, {"label": "정배열(5>10)", "ok": true, "detail": "6,266 / 5,298"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "6,266 / 4,873"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+70.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +188 · 기 +0 (천주)"}, {"label": "애널", "ok": null, "detail": "데이터 없음(통과)"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "1.87% (환산) vs 평균 5.69% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 8,460"}, {"label": "거래량 급증", "ok": false, "detail": "116,047 (환산) vs 평균 353,452"}, {"label": "회전율 급증", "ok": false, "detail": "1.87% (환산) vs 평균 5.69%"}, {"label": "RSI", "ok": true, "detail": "63"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 7,526 (현재 6,540)"}]}
{"ts": "2026-07-29T09:24:16.525927+09:00", "side": "BUY", "code": "095610", "name": "테스", "price": 122600, "qty": 26, "cost": 3188078, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 117686, "target": 268942, "signals": [{"label": "손절선", "ok": true, "detail": "117,686 (현재 177,000)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 268,942"}, {"label": "추세(10일선)", "ok": true, "detail": "148,710"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +453 · 기 -688"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 164,742"}]}
{"ts": "2026-07-29T09:24:16.526812+09:00", "side": "BUY", "code": "003680", "name": "한성기업", "price": 6710, "qty": 368, "cost": 2469650, "path": "add", "reason": "추격매수 — 2/2차 (추세 지속)", "stop": 5295, "target": 10276, "signals": [{"label": "손절선", "ok": true, "detail": "5,295 (현재 8,460)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 10,276"}, {"label": "추세(10일선)", "ok": true, "detail": "5,064"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +188 · 기 +0"}, {"label": "분할(1/2)", "ok": null, "detail": "추가 트리거 6,796"}]}
{"ts": "2026-07-29T10:18:05.441582+09:00", "side": "SELL", "code": "095610", "name": "테스", "price": 116400, "qty": 47, "proceeds": 5460132, "entry_price": 137300, "pnl": -993936, "pnl_pct": -15.22, "hold_from": "2026-07-24T09:00:20.070959+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "117,686 (현재 115,800)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 247,100"}, {"label": "추세(10일선)", "ok": false, "detail": "149,160"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +445 · 기 -685"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T10:18:05.773212+09:00", "side": "BUY", "code": "030000", "name": "제일기획", "price": 19370, "qty": 241, "cost": 4668870, "path": "pullback", "reason": "눌림목 지정가 19,645 도달", "stop": 17897, "target": 23788, "signals": [{"label": "추세(10일선 위)", "ok": true, "detail": "19,360 vs 18,984"}, {"label": "정배열(5>10)", "ok": true, "detail": "19,658 / 18,984"}, {"label": "추세 기울기(10일선↑)", "ok": true, "detail": "우상향"}, {"label": "중기 정배열(5>60)", "ok": true, "detail": "19,658 / 19,365"}, {"label": "상대강도(시장대비)", "ok": true, "detail": "+28.4%p"}, {"label": "수급(5일 외/기)", "ok": true, "detail": "외 +102 · 기 +138 (천주)"}, {"label": "투자의견", "ok": true, "detail": "4.0/5"}, {"label": "상승여력", "ok": true, "detail": "+30%"}, {"label": "시장 강세", "ok": true, "detail": "강세"}, {"label": "과열 아님(회전율)", "ok": true, "detail": "0.74% (환산) vs 평균 0.62% (보류 3배↑)"}, {"label": "돌파(전고점)", "ok": false, "detail": "고점 21,150"}, {"label": "거래량 급증", "ok": false, "detail": "847,265 (환산) vs 평균 711,709"}, {"label": "회전율 급증", "ok": false, "detail": "0.74% (환산) vs 평균 0.62%"}, {"label": "RSI", "ok": true, "detail": "52"}, {"label": "눌림목 도달", "ok": true, "detail": "지정가 19,645 (현재 19,360)"}]}
{"ts": "2026-07-29T12:04:01.755276+09:00", "side": "SELL", "code": "086790", "name": "하나금융지주", "price": 119200, "qty": 86, "proceeds": 10231210, "entry_price": 124153, "pnl": -447591, "pnl_pct": -3.99, "hold_from": "2026-07-02T10:18:04.653371+09:00", "reason": "추세·수급 이탈", "partial": false, "signals": [{"label": "손절선", "ok": true, "detail": "111,000 (현재 119,300)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 163,614"}, {"label": "추세(10일선)", "ok": false, "detail": "119,490"}, {"label": "수급(외/기)", "ok": false, "detail": "외 -11 · 기 -51"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
{"ts": "2026-07-29T13:16:01.549575+09:00", "side": "SELL", "code": "003680", "name": "한성기업", "price": 5510, "qty": 966, "proceeds": 5312281, "entry_price": 6605, "pnl": -1068876, "pnl_pct": -16.58, "hold_from": "2026-07-29T09:02:03.597609+09:00", "reason": "손절", "partial": false, "signals": [{"label": "손절선", "ok": false, "detail": "5,581 (현재 5,510)"}, {"label": "목표/트레일링", "ok": null, "detail": "목표 9,677"}, {"label": "추세(10일선)", "ok": true, "detail": "5,196"}, {"label": "수급(외/기)", "ok": true, "detail": "외 +185 · 기 +0"}, {"label": "분할(2/2)", "ok": null, "detail": "추가 종료"}]}
@@ -1,5 +1,5 @@
{
"cash": 13412811.965499967,
"cash": 6708691.514999965,
"initial": 100000000,
"positions": {
"055550": {
@@ -18,7 +18,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 101100,
"cur_price": 98500,
"tranches": 2,
"tranche_value": 5666061.52171875,
"last_add_price": 99700
@@ -39,7 +39,7 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 129200,
"cur_price": 126900,
"tranches": 2,
"tranche_value": 4789675.2297187485,
"last_add_price": 130800
@@ -55,12 +55,12 @@
"entry_at": "2026-07-14T09:40:05.108687+09:00",
"stop": 5498,
"target": 7383,
"peak": 6330,
"peak": 6380,
"trailing_on": false,
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 6240,
"cur_price": 5980,
"tranches": 2,
"tranche_value": 4852421.820656248,
"last_add_price": 6030
@@ -81,7 +81,7 @@
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 99400,
"cur_price": 96500,
"tranches": 2,
"tranche_value": 4978530.748468748,
"last_add_price": 106600
@@ -97,37 +97,16 @@
"entry_at": "2026-07-21T09:02:06.779465+09:00",
"stop": 292918,
"target": 451467,
"peak": 384500,
"peak": 397000,
"trailing_on": false,
"scaled_out": false,
"entry_path": "immediate",
"entry_reason": "조건 충족 — 즉시매수(눌림 안 기다림)",
"cur_price": 377500,
"cur_price": 390500,
"tranches": 2,
"tranche_value": 4623660.577343748,
"last_add_price": 338000
},
"252990": {
"code": "252990",
"name": "샘씨엔에스",
"sources": [
"auto"
],
"qty": 241,
"entry_price": 13510,
"entry_at": "2026-07-27T09:04:07.177342+09:00",
"stop": 10457,
"target": 22669,
"peak": 13730,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 13,973 도달",
"cur_price": 11210,
"tranches": 1,
"tranche_value": 3262391.4453780535,
"last_add_price": 13510
},
"078930": {
"code": "078930",
"name": "GS",
@@ -144,17 +123,38 @@
"scaled_out": false,
"entry_path": "breakout",
"entry_reason": "거래량·회전율 동반 전고점 돌파",
"cur_price": 87200,
"cur_price": 83400,
"tranches": 1,
"tranche_value": 4476141.774093748,
"last_add_price": 89800
},
"030000": {
"code": "030000",
"name": "제일기획",
"sources": [
"auto"
],
"qty": 471,
"entry_price": 18904.904458598725,
"entry_at": "2026-07-29T09:02:03.603926+09:00",
"stop": 17760,
"target": 22340,
"peak": 20750,
"trailing_on": false,
"scaled_out": false,
"entry_path": "pullback",
"entry_reason": "눌림목 지정가 20,014 도달",
"cur_price": 18800,
"tranches": 2,
"tranche_value": 4465513.872843748,
"last_add_price": 18950
}
},
"realized_pnl": -29833346.235000033,
"closed_trades": 34,
"realized_pnl": -30888319.440500032,
"closed_trades": 35,
"wins": 1,
"peak_equity": 102093754.3635,
"max_drawdown": 0.309993521105291,
"max_drawdown": 0.33274666832749256,
"last_exit": {
"036010": "2026-06-17",
"017670": "2026-06-19",
@@ -180,8 +180,9 @@
"105560": "2026-07-20",
"024060": "2026-07-27",
"095610": "2026-07-28",
"086790": "2026-07-28"
"086790": "2026-07-28",
"252990": "2026-07-29"
},
"created_at": "2026-06-16T09:00:03.113489+09:00",
"updated_at": "2026-07-28T15:28:01.092928+09:00"
"updated_at": "2026-07-29T15:28:01.532857+09:00"
}

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