DayBot

2026-08-20 (목) 회고

코어가 이틀 만에 돌아왔다 — 그런데 지수가 6.55% 오른 날 봇은 0.66%

오래 들고 가는 계좌가 8/14 이후 처음으로 다시 주식을 사서 아직 안 판 이익 72,312원이 붙었지만, 하루 만에 사고파는 계좌는 1번 사서 6,282원(내 돈 1,000만 원의 −0.063%)을 잃었고, 같은 날 지수는 6.55% 올랐다.

오늘 한눈에

  • 지수가 크게 오른 날(하루 중 최고 +6.67%)이었고, 봇은 '사도 되는 날'로 봤다.
  • 오래 들고 가는 계좌가 09:30에 두 종목을 샀다. 이틀 동안 0이던 것이 정상으로 돌아왔다.
  • 하루 만에 사고파는 계좌는 1번 샀다가 정해둔 선까지 떨어져서 팔았다. −6,282원.
  • 지금 전부 판다고 치면 오늘 하루는 +66,030원 (내 돈의 +0.66%)이다.

아직 안 판 이익 72,312원에서 오늘 확정된 손실 6,282원을 뺀 값이다.

  • 지난 기록으로 다시 돌려본 결과가 실제와 손실 크기에서 6배 차이가 났다.

오늘 지수를 이겼나?

아니다. 크게 졌다. 지수가 많이 오르는 날에는 지수를 그냥 사서 들고만 있는 쪽이 유리한데, 봇은 그만큼 못 따라갔다.

항목 오늘 하루 4일 모아서
봇 (지금 전부 판다고 치면)+0.660% (+66,030원)+0.5502%
지수를 그냥 사서 들고만 있기+6.548%+0.9555%
차이−6.610%p−0.4053%p

같은 날인데 차이가 두 개다. 하나는 −6.610%p, 하나는 −0.4053%p. 이유는 계산에 쓰는 봇 값이 다르기 때문이다. 하루짜리는 실제로 팔아서 확정된 돈(−0.063%)만 쓰고, 12일짜리는 지금 전부 판다고 친 값(+0.5502%)을 쓴다. 같은 표에 다른 자를 두 개 놓은 셈이다. 이건 하루 기록만으로 확실한 잘못이라 아래 진화 블록에 적었다.

주의할 것 하나. 위 오른쪽 칸은 4일치다. 실제로 팔아서 확정한 쪽은 12일치로 −0.9632%다. 둘을 섞어 읽으면 안 된다.

오늘 내 돈 1,000만 원 중 약 614만 원이 주식에 들어가 있었다. 어제(8분만 들어가 있던 날)와 달리 오늘은 비교가 성립한다. 그래서 진 것이 진 것이다.

코어는 정말 돌아왔나?

돌아왔다. 이게 오늘 가장 큰 소식이다.

시각 무슨 일
09:30:16069500(코스피 지수를 따라가는 상품) 22주를 105,645원에 샀다
09:30:17379800 149주를 24,140원에 샀다
종가 시점목표 60.0%, 실제 59.9425% — 차이는 0.06%p뿐

8/18·8/19 이틀 동안 목표 60%인데 실제 0%였던 문제(D7)가 오늘 풀렸다. 봇이 남긴 기록에도 두 건 다 "체결"로 찍혔다. 사려던 값과 실제로 산 값의 차이도 0이었다.

하루 사고판 건 어떻게 됐나?

한 번 사서 한 번 졌다. 1번 중 0번 이겼다 — 하루치라 이 숫자로는 아무 판단도 못 한다.

시각 무슨 일
10:28:19229200(코스닥150) 68주를 14,645원에 사겠다고 냈다
10:28:223초 만에 14,645원에 그대로 샀다
11:53:5214,557원까지 떨어져서 정해둔 선에 걸려 팔았다
  • 잃은 돈: 가격에서 −5,984원, 수수료 −298원 → 합쳐 −6,282원 (−0.63%)
  • 사고 나서 제일 올랐을 때 +0.44%, 제일 떨어졌을 때 −0.61%
  • 팔린 값 −0.601%는 정해둔 선 −0.6%와 거의 정확히 맞다

지수가 +3.39% 오르는 날인데, 봇이 산 코스닥150은 산 뒤로 계속 밀렸다. 사고 판 게 1번뿐이라 규칙이 나쁘다고 말할 수 없다.

지난 기록으로 다시 돌려보면?

오늘 실제로 돌려본 건 일곱 가지다.

다시 돌려본 것 거래 결과
지금 쓰는 방식1번−39,004원 (−0.39%)
자동 매도선 끄기1번위와 완전히 똑같음
옛날 방식2번+8,646원 (+0.09%)
옛날 방식 + 자동 매도선 끄기2번+8,646원 (똑같음)
옛날 방식 + 살 회사 조건 좁히기0번볼 게 없음
옛날 방식 + 지수 떨어지면 멈춤 강화2번+8,646원 (똑같음)
옛날 방식 + 손절 넓히고 조금씩 사기2번+12,829원 (+0.13%)

여기서 두 가지가 확실하게 어긋난다.

첫째, 팔린 값이 다르다. 다시 돌려본 쪽은 14,655원에 사서 14,545원에 팔아 −0.78%다. 정해둔 선 −0.6%대로면 14,567원이어야 한다. 22원 더 깊다. 그런데 오늘 실제 봇은 −0.601%로 정확했다. 다시 돌려보는 쪽만 틀린다.

둘째, 잃은 돈 크기가 6배다. 같은 1번 거래인데 실제는 −6,282원, 다시 돌려본 쪽은 −39,004원. 실제로는 약 100만 원어치를 샀는데, 다시 돌려보는 쪽은 약 500만 원어치를 산 것으로 계산하고 있다는 뜻이다.

이 둘은 하루 기록만으로 확실히 잘못이라 진화 블록에 적었다.

셋째, 손절을 넓히니 지는 거래가 사라졌다. 086520이 −0.98%에 잘리던 것이 −0.15%로 끝났다. 하지만 이 비교군은 손절 넓히기와 조금씩 사기를 같이 바꿨다. 어느 쪽 덕인지 모른다. 그래서 가설로 넘긴다.

지수 떨어지면 멈추는 규칙은?

오늘은 0분이다. 지수가 하루 종일 +2.0% 위에 있었으니 당연하다. 그리고 이 숫자는 옛날 방식으로 다시 돌려볼 때만 쓰는 것이고, 지금 실제로 돌아가는 봇에는 이 규칙 자체가 없다. 봇이 남긴 기록에도 그렇게 적혀 있다.

아직 못 고친 문제는?

오늘은 D7 한 건뿐이었고, 그 한 건이 오늘 풀렸다.

번호 나이 결과
D73일해결. 오늘 두 종목 다 샀고, 목표와 실제 차이가 0.06%p로 줄었다

지금까지 고친 것 14건, 버린 것 2건, 확인 중 1건이다.

가설은 몇 개나 판정됐나?

하나도 안 됐다. 12개가 줄 서 있는데 오늘 돌아간 건 0개다. 이유는 가설을 적을 때 "60거래일 재생에서 비교한다" 같은 글로만 써놨기 때문이다. 기계가 읽고 돌릴 수 있는 형태가 아니다. 이것도 진화 블록에 적었다.

봇이 남긴 기록에 이상한 건?

없다. 21건이고 경고는 0건이다. 주문 4건, 체결 4건 — 오늘 산 3건과 판 1건에 정확히 맞는다. 같은 종류가 수천 번 반복되는 일도 없다.

종류 건수
봇 알림5
주문 / 체결각 4
살 회사 고르기3
나머지5

내일 다시 볼 것

  • 하루 사고파는 계좌가 오르는 날인데 왜 떨어지는 쪽을 샀나. 1번뿐이라 아직 모른다
  • 069500은 오늘도 하루 사고파는 쪽에서 한 번도 안 샀다
  • 살 만한지 지켜본 26개 중 4개만 통과했다. 옛날 조건으로 좁히면 0개였다

조치 — 설정값은 바꾸지 않는다

실제로 사고판 건 오늘 1번, 다 합쳐 12번(2번 이김)이다. 500번이 안 되므로 눌림폭·손절·목표·크기를 손대지 않는다.

단계 조건 지금
3지수가 −1.0~−1.5 사이에 있을 때 살 일이 1번오늘 지수가 계속 +2% 위 — 12일 연속 못 채움
4 손절실제 손절 10번 쌓기8번 (오늘 1번 늘어남)
4 목표사고 나서 +3.0%까지 오른 거래 1번0번. 오늘 최고 +0.44%
5다시 돌려보기가 실제를 그대로 재현한 뒤 판정오늘도 손실 크기 6배 차이 — 보류

12거래일 정리

날짜 거래 / 이김 확정된 손익률
8/4~8/10 (v2 5일)6 / 0−0.90% 합
8/11~8/14 (v4 4일)1 / 1+0.118%
8/182 / 1−0.0022%
8/192 / 0−0.1069%
8/201 / 0−0.0628%

다 합쳐 12번 사고팔아 2번 이겼고, 확정 손익은 −0.9632%다. 제일 많이 깎였을 때는 −0.956%로 오늘도 그대로다.

오늘 얻은 것은 코어 복구 하나다. 잃은 것은 다시 돌려보기가 여전히 실제와 다르다는 확인이다. 크기가 6배 다르면 그 결과로는 아무것도 정할 수 없다.

숫자 출처

본문 표현 원자료 필드
지금 전부 판다고 치면 +0.660%daily.mtm_pnl_pct
확정 손실 −6,282원 (−0.063%)daily.net_pnl / net_pnl_pct
아직 안 판 이익 72,312원daily.unrealized_pnl
하루 차이 −6.610%pdaily.alpha_pct
12일 차이 −0.4053%p (4일치)rolling.20d.alpha_pct / alpha_days / alpha_bot_pct
12일 확정 −0.9632%rolling.20d.bot_realized_pct
주식에 들어간 비율 61.39%daily.exposure_pct
코어 목표 60.0 / 실제 59.9425daily.core_expected_pct / core_actual_pct
지수 떨어지면 멈춤 0분index.blocked_minutes / block_applies_to
다시 돌려본 이름 원문replay[].label

진화 블록

종류 내용 검증
결함일별 alpha_pct 는 실현(net_pnl_pct)만 쓰고 rolling 의 alpha_bot_pct 는 시가평가를 써서 같은 날 −6.610%p 와 −0.405%p 가 나온다사람이 일별 알파와 롤링 알파의 봇 항을 한쪽 정의로 통일하고 어느 쪽인지 출력에 표기한다
결함재생 손절 체결가가 파라미터보다 깊다 — 재생 진입 14,655 기준 −0.6%는 14,567인데 14,545에 체결(−0.75%), 같은 날 실전은 −0.601%로 정확사람이 replay_etf.py 의 손절 체결가가 분봉 저가를 쓰는지 확인한다
결함재생 사이징이 실전과 다르다 — 같은 1거래에서 재생 −39,004원(명목 약 5,000,000원 역산) 대 실전 −6,282원(명목 995,860원)사람이 replay_etf.py 의 포지션 비중 파라미터가 실전 10%와 같은지 확인한다
결함가설 12건이 queued 인데 sweeps_run 이 빈 배열이다 — test_spec 이 산문이라 스윕 실행기가 돌릴 격자가 없다사람이 큐에 있는 가설 중 재생 파라미터로 답할 수 있는 것을 스윕 형식으로 재등록한다
가설손절 폭 단독으로 기대값이 개선되는가 — 오늘 4단계 세트에서 086520 이 −0.98% 손절에서 −0.15% time_exit 으로 바뀌었으나 사이즈 0.13 과 묶여 있다sweep:replay.py STOP_LOSS_PCT=-0.6,-1.0,-1.5
해결D7sql:core_orders 가 8/20 069500 22주·379800 149주 체결을 반환했고 core_actual_pct 59.9425 대 기대 60.0 으로 격차가 −0.06%p 로 축소됐다