지수는 올랐는데 봇은 내리는 쪽에 걸었다 — 63초 만에 8,066원
아침에 밀린 지수를 보고 '내리는 쪽' 상품을 샀지만 63초 만에 잘려 8,066원(내 돈 1,000만 원의 −0.081%)을 잃었고, 지수를 그냥 샀으면 +1.505%(150,515원)여서 오늘 차이는 −1.741%p(174,127원)다.
오늘 한눈에
- 지수가 아침에 −1.55%까지 밀렸다. 봇은 '내리는 날'로 봤다. 그런데 지수는 +1.46%까지 올라갔다.
- 하루 만에 사고파는 계좌가 09:31에 사고 09:32에 팔았다. 63초. 8,066원 손해.
- 사고 나서 단 한 번도 오르지 않았다. 세 번 연속 같은 모습이다.
- 지난 기록으로 다시 돌려본 값이 실제와 시각·가격·손실률까지 똑같아졌다.
- 오래 남아 있던 문제 4개가 오늘 모두 답을 찾았다. 대신 새 문제 2개를 연다.
오늘 지수를 이겼나?
졌다.
| 항목 | 오늘 | 돈으로 |
|---|---|---|
| 봇 (지금 전부 판다고 치면) | −0.236% | −23,612원 |
| 지수를 그냥 사서 들고만 있기 | +1.505% | +150,515원 |
| 차이 | −1.741%p | −174,127원 |
13일을 모아 보면 이렇다. 봇과 지수를 나란히 놓을 수 있는 날은 그중 5일뿐이다.
| 항목 | 값 (5일치) |
|---|---|
| 봇 (지금 전부 판다고 치면) | +0.3128% |
| 지수를 그냥 사서 들고만 있기 | +2.4751% |
| 차이 | −2.1623%p |
실제로 팔아서 확정한 쪽은 13일 동안 −1.0431%다. 13번 사고팔아 2번 이겼다.
오늘은 내 돈의 평균 59.24%가 주식에 들어가 있었다. 자리를 비운 날이 아니라서 이 비교는 성립한다.
설명 안 되는 것 하나. 지수를 그냥 샀으면 +1.505%인데, 오래 들고 가는 계좌의 아직 안 판 이익은 72,312원에서 56,767원으로 줄었다. 15,545원(약 −0.26%) 손해다. 오늘은 아무것도 사고팔지 않았다. 그런데 지수와 반대로 움직였다. 종목별 값이 기록에 없어 이유를 확인하지 못했다. 새 문제로 연다.
무슨 일이 있었나?
| 시각 | 일 |
|---|---|
| 09:30:02 | 지수 −0.99%·기울기 −0.60%p → '내리는 날'. 지수와 반대로 가는 상품 지정 |
| 09:31:19 | 1,029원에 971주 주문 (약 999,159원) |
| 09:31:22 | 3초 만에 1,029원 그대로 체결. 값 차이 0 |
| 09:32:25 | 1,021원에 팔림. 산 지 63초 |
- 가격에서 7,768원, 수수료 298원 → 합쳐 8,066원 손해 (−0.807%)
- 사고 나서 제일 좋았을 때가 0.00%다. 한 번도 이익인 적이 없었다.
- 어제·그제 지수와 반대 상품을 산 3번이 모두 이랬다. 아직 3번뿐이라 규칙 탓이라 말할 수 없다.
아침 판단은 오늘 빗나갔다. 지수는 −1.55%에서 시작해 +1.46%까지 올랐다. 반대 상품은 계속 내렸을 것이다. 63초 만에 자른 것은 오히려 큰 손실을 막았다. 하루에 한 번, 아침에만 방향을 정하는 문제는 이미 가설 6번으로 줄 서 있다.
지난 기록으로 다시 돌려보면?
| 다시 돌려본 것 | 거래 | 결과 |
|---|---|---|
| 지금 쓰는 방식 | 1번 | −40,366원 (−0.40%) |
| 자동 매도선 끄기 | 1번 | 똑같음 |
| 옛날 방식 | 2번 | −97,370원 (−0.97%) |
| 옛날 방식 + 자동 매도선 끄기 | 2번 | 똑같음 |
| 옛날 방식 + 살 회사 조건 좁히기 | 0번 | 볼 게 없음 |
| 옛날 방식 + 지수 떨어지면 멈춤 강화 | 2번 | 똑같음 |
| 옛날 방식 + 손절 넓히고 조금씩 사기 | 3번 | +51,527원 (+0.52%) |
큰 소식. 지금 쓰는 방식의 되돌리기가 실제와 완전히 같았다. 09:31에 1,029원, 09:32에 1,021원, 손실률 −0.81% 대 −0.807%. 돈 크기만 5배 차이인데, 이건 오늘 기록에 이유가 적혀 있다. 되돌리기는 전체 돈으로 사고, 실제 봇은 하루 계좌 몫으로 산다. 그래서 %만 비교하면 된다.
손절을 넓힌 쪽이 이틀 연속 이겼다. 하지만 아래 가설 13번은 반대로 나왔다. 둘은 서로 다른 방식이라 합쳐 읽으면 안 된다.
지수 떨어지면 멈추는 규칙은?
1분. 지수가 하루 중 잠깐 −1.0% 아래로 내려갔다. 이 규칙은 옛날 방식으로 되돌려볼 때만 쓴다. 지금 봇에는 없다. 멈춤을 강하게 한 쪽도 거래 2번이 그대로였다. 그 1분에 살 일이 없었다는 뜻이다. 3단계 조건은 13일 연속 못 채웠다.
오래된 문제는 어떻게 됐나?
4개 다 오늘 답이 나왔다.
| 번호 | 나이 | 오늘 답 |
|---|---|---|
| D18 | 2일 | 해결. 두 곳의 차이 계산이 오늘은 같은 자를 썼다 |
| D19 | 2일 | 해결. 손절선에서 판 뒤 0.15%를 더 빼는 규칙이었다. 세 건 다 원 단위까지 맞다 |
| D20 | 2일 | 해결. 되돌리기는 전체 돈으로 산다고 기록에 적혀 있다 |
| D21 | 2일 | 해결. 오늘 기계가 가설 5개를 돌렸다 |
지금까지 고친 것 15건, 버린 것 2건이다.
가설은 몇 개나 판정됐나?
5개가 돌았고 3개가 판정 가능으로 나왔다. 121일치 기록을 썼다.
| 자동 매도선 | 거래 | 121일 합계 |
|---|---|---|
| 켬 (지금) | 102번 | −1,179,295원 |
| 끔 | 102번 | −1,032,772원 |
끄는 쪽이 146,523원 덜 잃었다. 한 번당 −0.231%가 −0.203%가 된다.
| 추세 이탈선 | 거래 | 121일 합계 |
|---|---|---|
| −0.3 (지금) | 102번 | −1,179,295원 |
| −0.6 | 81번 | −903,559원 |
| −1.0 | 79번 | −880,926원 |
한 번당 손익은 거의 같다. 거래 수가 줄어 합계 손실만 줄었다.
| 손절 폭 | 거래 | 121일 합계 |
|---|---|---|
| −0.6 (지금) | 102번 | −1,179,295원 |
| −1.0 | 112번 | −1,302,535원 |
| −1.5 | 117번 | −1,462,173원 |
넓힐수록 이기는 횟수는 늘지만 합계는 나빠진다. 지금 값이 셋 중 제일 낫다.
세 표 전부 마이너스다. 어떤 값을 골라도 121일 되돌리기는 100만 원 넘게 잃는다. 값 고르기로 풀 문제가 아닐 수 있다.
나머지 2개(한 번에 얼마씩 살까, 변동폭 상한)는 판정 보류다. 12일치뿐이라 아직 모른다는 뜻이지, 차이가 없다는 뜻이 아니다.
봇 기록에 이상한 건?
없다. 17건, 경고 0건. 주문 2·체결 2로 오늘 한 번 사고판 것과 정확히 맞는다. 같은 일이 수천 번 반복된 흔적도 없다.
조치 — 설정값은 바꾸지 않는다
실제로 사고판 건 다 합쳐 13번이다. 500번이 안 되므로 아무 값도 손대지 않는다.
| 단계 | 조건 | 지금 |
|---|---|---|
| 3 | 지수 −1.0~−1.5 구간에서 살 일 1번 | 13일 연속 못 채움 |
| 4 손절 | 실제 손절 10번 쌓기 | 8번 (오늘은 추세 이탈로 팔려 안 늘었다) |
| 4 목표 | 사고 나서 +3.0%까지 오른 거래 1번 | 0번. 오늘 최고 0.00% |
숫자 출처
| 본문 표현 | 원자료 필드 |
|---|---|
| 확정 손실 8,066원 (−0.081%) | daily.net_pnl / net_pnl_pct |
| 지금 전부 판다고 치면 −0.236% | daily.mtm_pnl_pct |
| 아직 안 판 이익 56,767원 | daily.unrealized_pnl / prev_unrealized_pnl |
| 오늘 차이 −1.741%p | daily.alpha_pct / bench_bh_pct |
| 13일 창 +0.3128 / +2.4751 / −2.1623 | rolling.20d.bot_pct / bench_bh_pct / alpha_pct |
| 13일 확정 −1.0431% | rolling.20d.bot_realized_pct |
| 주식 비중 59.24% · 코어 59.787% | daily.exposure_pct / core_actual_pct |
| 지수 최저 −1.55 최고 +1.46 · 멈춤 1분 | index.min_pct / max_pct / blocked_minutes |
| 되돌리기 이름 원문 | replay[].label |
| 스윕 결과 원문 | evolution.sweeps_run[].arms |
진화 블록
| 종류 | 내용 | 검증 |
|---|---|---|
| 결함 | 코어가 지수와 반대로 움직였다 — 지수 B&H +1.505%인데 미실현이 72,312원에서 56,767원으로 15,545원(−0.26%) 줄었고 당일 코어 매매는 0건이다 | 사람이 코어 보유 2종목의 당일 종가와 매입가를 대조한다 |
| 결함 | mae 기록이 실제 청산가보다 얕다 — mae −0.5831%는 1,023원인데 체결 청산가는 1,021원이다 | 사람이 mae 계산에 청산 체결가가 포함되는지 확인한다 |
| 가설 | v4 목표 익절 폭을 넓히면 기대값이 개선되는가 — 트레일링 끔 팔에서 고정 익절 26건 평균 +0.95%가 트레일링 26건 평균 +0.83%보다 높았다 | sweep:replay_etf.py TAKE_PROFIT_PCT=1.0,2.0,3.0 |
| 해결 | D18 | 일별 alpha_pct −1.7412638 = mtm_pnl_pct −0.2361158 − bench_bh 1.5051480, 롤링 alpha_pct −2.1623 = alpha_bot_pct 0.3128 − bench_bh 2.4751 로 양쪽 모두 시가평가 기준으로 일치 |
| 해결 | D19 | 재생 손절가는 손절선에 시장가 슬리피지 0.15%를 뺀 값이다 — 14,264×0.9985=14,243, 7,057×0.9985=7,047, 8/20 의 14,567×0.9985=14,545 로 세 건 모두 원 단위까지 일치 |
| 해결 | D20 | 재생 헤더가 자본 100% 기준이며 계정 배분을 넣지 않는다고 명시했고 재생 명목 5,000,000원 대 실전 999,159원이며 거래당 손익률은 −0.807% 대 −0.8073% 로 일치 |
| 해결 | D21 | sweeps_run 에 5건이 실행됐고 그중 3건(7·11·13)이 121거래일 표본으로 판정 가능으로 반환됐다 |