7거래 만에 첫 승, 그런데 같은 조건의 재생은 두 번 이겼다
KODEX 200 눌림 진입 1건이 +1.0% 목표에 걸려 순 +11,753원(+0.118%)으로 첫 승을 기록했고 mfe_pct가 처음 채워졌으나, 같은 날 v4 재생은 11:10에 두 번째 진입으로 한 번 더 이겼고 실전이 그 신호를 왜 내지 않았는지 원자료가 설명하지 않는다.
결과
| 항목 | 값 |
|---|---|
| 레짐 | GREEN (09:30:02) · 코스피 +2.539% · 기울기 +1.183%p · 전일 +0.728% |
| 대상 | 069500 KODEX 200 (코스피 +2.54% ≥ 코스닥 −1.86%) |
| 신호 / 주문 / 체결 / 미체결 | 2 / 2 / 1 / 1 |
| 거래 | 1건, 1승 0패 |
| 총손익 → 순손익 | 12,120원 → 11,752.9원 (+0.118%) |
| 비용 | 367.09원 (거래당 0.030%p, 세금 0) |
| 누적 수익률 / MDD | −0.793% / 0.909% (MDD 변동 없음) |
| 워치독 / API 오류 | 0 / 0 |
| 관찰 | 정적 25 → 동적 6 (ETF 3종은 동적 평가 없음) |
| 지수 | 최저 +1.164%, 최고 +5.074% (종일 플러스) |
| 아카이브 | 25종목 9,794봉 |
시간 순서
| 시각 | 일 |
|---|---|
| 09:30:02 | GREEN 판정 → 대상 KODEX 200 |
| 09:36:50 | 신호 101,750 (고가 102,170 / 눌림 0.411% / VWAP 101,231.8) → 지정가 101,745 / 12주 |
| — | 위 주문 미체결 → 취소 (취소 시각 없음) |
| 09:42:54 | 신호 101,470 (눌림 0.685% / VWAP 101,258.7) → 지정가 101,465 |
| 09:42:59 | 체결 101,465 (지정가와 동일, 슬리피지 −0.0049%) |
| 10:33:29 | 익절 102,475 (보유 50분) · gross +0.995% → 순 +0.965% |
| 이후 | 실전 신호 0건. 지수는 최고 +5.07%까지 더 올랐다 |
주문금액 101,465 × 12 = 1,217,580원, 자본의 12.18%. 수량은 floor(자본×13% / 지정가)와 일치한다(1,300,000/101,745 = 12.78 → 12). 8/11도 1,300,000/1,145 = 1,135.4 → 1,135으로 일치 — 13% 사이징은 2표본에서 재현됐다.
어제 못 푼 산식 두 개가 오늘 표본을 얻었다
주문가 = 직전가에서 1틱 내려 호가격자로 내림. 오늘 2건(101,750→101,745 / 101,470→101,465)과 8/11 3건(1,151→1,145 / 1,152→1,145 ×2)이 모두 이 규칙에 맞는다. 5표본 일치이고 코드는 확인하지 않았다.
이게 맞으면 8/11 회고의 "신호 로직과 주문가 로직이 다른 지점을 본다"는 해석은 틀렸다. 원인은 틱의 상대 크기다.
| 날 | 대상 가격대 | 5원 틱의 상대값 | 지정가 −신호가 | 체결 |
|---|---|---|---|---|
| 8/11 | 1,150원 | 0.43% | −0.52 ~ −0.61% | 0/3 |
| 8/12 | 101,700원 | 0.005% | −0.005% | 1/2 |
같은 "1틱 아래" 규칙이 1,150원 ETF에서는 눌림 밴드(0.4~1.2%)의 절반을 건너뛰게 만들고, 10만원 ETF에서는 사실상 시장가다. 8/11의 3연속 미체결과 오늘의 5초 체결은 같은 원인의 양쪽 끝일 수 있다. 단, 8/11 신호가 1,151·1,152는 ETF 호가단위 5원의 배수가 아니다 — 가격 피드가 호가격자를 따르지 않는 정황이며 확인하지 못했다.
목표가는 체결가 기준으로 계산됐다. 101,465 × 1.01 = 102,479.65 → 격자 내림 102,475 = 실제 청산가. 신호가 기준(101,470 × 1.01 = 102,484.7 → 102,480)과는 5원 다르고, 실제는 체결가 쪽이다. 8/10에 "손절선은 신호가 기준으로 보인다"고 적었던 것과 방향이 반대다. 표본 1건, 전략도 다르다. 어느 쪽도 결론이 아니다.
비용이 달라졌다. ETF라 거래세 0, 왕복 수수료만 367원 = 거래당 0.030%p. v2 시절 개별주식은 0.229%p였다. 같은 gross +0.995%를 옛 비용으로 치르면 순 +0.766%다 — 오늘 순손익의 0.20%p는 종목군이 ETF로 바뀐 데서 왔다. 이익 구조가 아니라 비용 구조의 차이이므로 전략 우열의 근거로 쓰지 않는다.
replay 비교 — 이틀째 2종, 그리고 실전이 재생보다 1건 적다
| 재생 | 관찰 | 거래 | 결과 |
|---|---|---|---|
| v4 ETF 레짐 (현재) | — | 2 | +23,681원 (+0.24%), 기대값 +0.966%/거래, take_profit 2건 |
| v2 반사실 (구 VWAP 회귀) | 6 | 2 | +11,883원 (+0.12%), time_exit 2건 (+1.02% / −0.12%) |
| 실전 | v4 재생 | |
|---|---|---|
| 1차 | 09:42:59 101,465 → 10:33 102,475, +0.965% | 09:43 101,460 → 10:31 102,470, +0.97% |
| 2차 | 없음 | 11:10 102,880 → 11:35 103,905, +0.97% |
| 순손익 | +11,753원 | +23,681원 |
1차는 진입·청산이 정확히 1틱(5원)씩 낮은 것 말고는 일치한다. 8/10의 0.35~0.47% 괴리와 비교하면 충실도가 크게 올랐다. 문제는 2차다. 재생은 11:10에 두 번째 진입 신호를 봤고 실전은 보지 않았다. 실전 order 이벤트는 3건(진입 2 + 청산 1)뿐이다. 원인 후보는 (i) 하루 진입 한도 2회에 미체결 1건이 포함됐다, (ii) 청산 후 재진입 금지, (iii) 재생과 실전의 신호 조건·가격 계열 차이 — 어느 것도 원자료로 구분할 수 없다. 8/11에는 미체결 3건 뒤에도 신호가 계속 났으므로 (i)이면 8/11과 규칙이 어긋난다. 차이는 +11,928원, 자본의 0.12%다.
(a) 트레일링을 껐을 때 차이 — 대조군이 이틀째 없다. 다만 오늘 처음으로 우회 근거가 생겼다: mfe_pct = 1.005%. 목표 +1.0%가 먼저 걸리는 구조이므로 무장선 +3.0%에 닿은 거래는 오늘도 0건이고, v4에서는 원리상 닿을 수 없다. 재생 헤더의 v4 파라미터에도 트레일링 항목이 없다(손절 -0.6 / 추세 VWAP-0.3 / 목표 +1.0). 트레일링이 코드에 남아 있는지는 확인하지 못했다.
(b) 옛 유니버스 상한 재생 — 이틀째 없다. 오늘 실거래 대상은 KODEX 200이고 이 종목은 애초에 동적 필터 밖에서 선정된다(아래 결함 #4). 유니버스 상한과 무관한 거래일 가능성이 높지만 재생이 없어 판정하지 못했다. v2 반사실이 거래한 산일전기(변동폭 3.37)·제룡전기(3.01)는 둘 다 옛 상한 2.5를 넘으므로 옛 상한이면 v2도 0건이었을 정황이다 — 변동폭 대조에 의한 추론이고 재생은 돌지 않았다.
(c) 3·4단계 예정값 재생 — 이틀째 없다. 3단계(지수차단 −1.5)는 오늘 지수가 종일 +1.16% 이상이어서 −1.0이든 −1.5든 결과가 같다. 4단계(손절 −1.5 / 익절 +2.5 / 13%)는 판정 자료가 없다. 다만 오늘 mae는 −0.286%로 손절 −0.6%에도 닿지 않았고, 청산 후 이 ETF는 11:35에 103,905까지 갔다(재생 2차 청산가) — 우리 청산가 102,475보다 +1.40% 위다. 익절선을 올렸으면 유리했을 정황이지만, 표본은 강한 상승일 하루 1건이고 그 값을 판정할 재생이 없다.
한 가지 진전 — v2 반사실 관찰 6종목이 실전 동적 통과 6종목과 일치하고, 거래한 2종목도 그 안에 있다. 유니버스 산출 일치 3거래일 연속. 슬롯 배분은 오늘도 시험되지 않았다(레짐 대상 1종목 고정, 8/6 결함 #1 5거래일째 대기).
조건 C — 0분, 지수가 종일 플러스였다
blocked_minutes = 0, 임계 −1.0%, 지수 최저 +1.164%.
| 날짜 | blocked | 진입창(271분) 기준 | 지수 최저 |
|---|---|---|---|
| 8/4 | 134분 | 49% | −2.83% |
| 8/5 | 0분 | 0% | +4.57% |
| 8/6 | 47분 | 17% | −1.82% |
| 8/7 | 271분 | 100% | −6.51% |
| 8/10 | 0분 | 0% | −0.987% |
| 8/11 | 4분 | 1.5% | −1.363% |
| 8/12 | 0분 | 0% | +1.164% |
지수가 −1.0 ~ −1.5 구간에 들어간 적이 없다. 3단계 미충족(7거래일 연속). 분모 문제(8/7 #2)도 값이 0이어서 또 판별 못 했다. 8/11에 제기한 "조건 C가 인버스 매수에도 걸리는지"는 오늘 대상이 정방향 ETF라 시험되지 않았다.
유니버스
정적 25 → 동적 6. 통과: 코리아써키트·SK텔레콤·제룡전기·두산에너빌리티·한화오션·산일전기.
| 사유 | 건수 |
|---|---|
| 변동폭 (>5.0) | 10 |
| 거래량비 (<0.8) | 8 |
| 갭 (범위 밖) | 0 |
| 동적 평가 없음(ETF 3종) | — |
22개 평가 종목 변동폭 중앙값 4.58%. 5.64 → 3.30 → 5.27 → 4.45 → 5.20 → 4.58. 여섯 번째 표본에서도 중앙값은 4.4~5.6 사이를 오간다. 상한 5.0을 건드릴 근거 없음. 갭 탈락이 처음으로 0건이다(최대 제룡전기 +3.52). 거래량비 탈락 8건 중 4건이 0.4 미만(에스피지 0.23, 현대건설 0.33, 클로봇 0.34)으로 임계 근처가 아니다 — 0.8 완화 여부와 무관한 탈락이다.
한국콜마 변동폭 13.90%, 일진전기 거래량비 12.75 — 정적 통과 종목의 분산은 여전히 크다. 결론 없음.
결함
| # | 징후 | 원인 | 조치 |
|---|---|---|---|
| 1 | 재생 2건 vs 실전 1건 — 11:10 두 번째 진입이 실전에 없다(차이 +11,928원) | 진입 한도·재진입 금지·신호 조건 차이 중 무엇인지 구분 불가. 8/11(미체결 3건 뒤에도 신호 발생)과 어긋난다 | 기록만 |
| 2 | 1차 주문이 미체결인데 가격은 지정가 아래로 갔다 — 지정가 101,745, 6분 뒤 직전가 101,470 | 주문 유효시간이 짧거나 취소 로직이 먼저 돈다. 취소 시각 없어 확정 불가 | 기록만 |
| 3 | 주문 취소 시각·유효시간 미기록 | cancel 1건, 언제인지 없음 (8/11 #6 재현) | 기록만 (2거래일째) |
| 4 | 동적 필터 미통과(069500, dynamic_detail: null)에 신호·주문·체결 | 레짐 대상 선정이 동적 유니버스와 별도 경로 (8/11 #4 재현) | 기록만 |
| 5 | 재생 5종 → 2종 유지 — 트레일링·옛 상한·3·4단계 대조군 이틀째 소실 | 사유 원자료에 없음 (8/11 #3) | 기록만. 단계 판정 수단 없음 |
| 6 | daily.trades_count = 1 인데 trades 배열은 2행 | 미체결 행의 집계 포함 규칙이 두 곳에서 다르다 | 기록만 |
| 7 | 재생 진입·청산가가 실전보다 정확히 1틱(5원) 낮다 | 체결 판정 기준이 미세하게 다르다. 손익 차 0.005%p 수준 | 기록만 |
| 8 | 목표가는 체결가 기준, 8/10 손절가는 신호가 기준 추정 — 방향이 반대 | 진입·청산 기준가가 항목마다 다를 가능성. 각각 표본 1~2건 | 기록만 |
| 9 | 4단계 익절 조건("고점 +3.0% 도달 1건")이 구조적으로 충족 불가 | 목표 +1.0%가 먼저 걸려 mfe_pct 상한이 ≈1.0%로 고정된다 | 기록만. 조건 자체의 유효성 확인 필요 |
| 10 | 재생과 실전의 전일 등락률 불일치(8/11 #2) 검증 불가 | v4 재생 출력이 전일 등락 값을 찍지 않는다 | 기록만 |
| 11 | blocked_minutes 시각·분모 미검증 | 값이 0 (8/7 #1·#2) | 기록만 (6거래일째) |
| 12 | 손절 누적 카운트 원자료 재집계 불가 | 당일분만 제공 (8/7 #6) | 기록만 |
warnings 0건. by_type 총 15건 — order 3(진입 2 + 청산 1), fill 2(진입·청산), cancel 1(미체결 1건과 일치), bot·universe·watchdog 각 2, archive·gate·report 각 1. 루프 징후 없음. watchdog 2건이 6거래일째 유지되고, gate 1건은 내용이 없어 이틀째 읽을 수 없다.
mfe_pct / mae_pct 가 처음 채워졌다
| 값 | 대응 파라미터 | |
|---|---|---|
| mfe | +1.005% | 목표 +1.0 (여기서 청산) |
| mae | −0.286% | 손절 −0.6 (닿지 않음) |
8/6부터 여섯 거래일간 요구한 항목이 실제로 동작한다. 다만 청산 이후의 가격은 담지 않으므로 "그 뒤 얼마나 더 갔는지"는 여전히 재생에서만 보인다.
지난 회고가 남긴 질문에 대한 답
| 질문 | 답 |
|---|---|
| v4 주문가 산식 | 부분 답. 직전가 −1틱 → 격자 내림. 5표본 일치, 코드 미확인 |
| 8/11 미체결이 가격 미도달인가 유효시간인가 | 오늘 건은 가격이 왔다. 지정가 101,745를 아래로 통과했는데 체결 없이 취소됐다 → 유효시간/취소 로직 쪽 정황. 8/11 건에 그대로 적용할 수는 없다 |
체결 시 mfe/mae 가 채워지는가 | 채워진다. +1.005% / −0.286% |
| 조건 C가 ETF 레짐(인버스)에도 걸리는가 | 미검증. 오늘 지수가 종일 플러스, 대상도 정방향 |
blocked_minutes 의 시각 | 없다. 값이 0이라 오늘은 물을 대상도 없음 |
| 재생 목록이 2종으로 고정인가 | 이틀 연속 2종. 고정인지는 원자료에 없음 |
| v4에 트레일링이 있는가 | 재생 파라미터 표기에는 없다. 목표 +1.0이 먼저 걸리므로 있어도 발동 불가. 코드 미확인 |
| 손절선 기준가 (v4) | 미검증. 오늘 손절 0건, mae −0.286%로 근처도 안 갔다 |
| 슬롯 배분 재현 | 또 시험 못 했다 (5거래일째 대기) |
내일 확인할 것
- 실전이 11:10 신호를 왜 내지 않았는가. 하루 진입 한도, 청산 후 쿨다운/재진입 금지, 미체결의 한도 소진 여부 — 이 셋 중 무엇인지
- 주문 유효시간(TTL)과 취소 시각. 8/11 3건과 오늘 1건의 미체결이 같은 원인인가
- 목표가·손절가가 각각 체결가 기준인가 신호가 기준인가 — 손절이 발동하는 날의 표본 필요
- 재생 목록 복구 여부. 4단계 익절 판정은 대조군 없이는 불가능하다
- 4단계 익절 조건을 목표 +1.0% 구조에서 어떻게 측정할지(조건 자체가 v4에 유효한가)
- 대상이 저가 ETF(1,150원대)로 다시 잡히는 날, 1틱 주문 규칙이 또 미체결을 만드는가
조치 — 없다
파라미터를 바꾸지 않는다. 오늘 얻은 것은 이익 1건이고, 그 1건은 강한 상승일(지수 +2.54% → 최고 +5.07%)에 정방향 ETF를 산 결과다. 표본은 하루 1건이다.
| 단계 | 조건 | 현재 |
|---|---|---|
| 3 조건 C −1.5 | 지수가 −1.0 ~ −1.5 구간에 머문 분에 진입 조건 성립 1회 | 오늘 지수 최저 +1.164% — 미충족 (7거래일 연속) |
| 4 손절 −1.5 | 손절 거래 10건 누적 | 6건 (오늘 손절 0건, 결함 #12로 미검증) |
| 4 익절 +2.5 | 고점 +3.0% 도달 거래 1건 이상 | 0건. 측정 수단은 생겼으나 목표 +1.0%가 상한을 만들어 구조적으로 충족 불가(결함 #9) |
| 5 거래량비 | 재생이 실전을 재현한 뒤 판정 | 보류 — 오늘 재생이 실전보다 1건 많았다(결함 #1) |
8/11에 적은 대로 이 단계표는 v2를 대상으로 세운 계획이고, 4단계 익절 조건은 v4 아래에서 영구 미충족임이 오늘 드러났다. 그럼에도 임의로 새 조건을 세우거나 단계를 건너뛰지 않는다. 단계표의 v4 유효성 확인이 선행 과제라는 판단을 유지한다.
7거래일 정리
| 날짜 | 전략 | 거래 | 승 | 순손익률 | 지수 최저 | 진입창 차단 |
|---|---|---|---|---|---|---|
| 8/4 | v2 | 0 | — | 0% | −2.83% | 49% |
| 8/5 | v2 | 2 | 0 | −0.42% | +4.57% | 0% |
| 8/6 | v2 | 2 | 0 | −0.25% | −1.82% | 17% |
| 8/7 | v2 | 0 | — | 0% | −6.51% | 100% |
| 8/10 | v2 | 2 | 0 | −0.232% | −0.987% | 0% |
| 8/11 | v4 | 0 | — | 0% | −1.363% | 1.5% |
| 8/12 | v4 | 1 | 1 | +0.118% | +1.164% | 0% |
누적 7거래 1승 6패, −0.793%, MDD 0.909%(변동 없음). 승이 났지만 규모는 손실 6건 평균(−0.9%대)의 8분의 1이다 — 목표 +1.0 / 손절 −0.6 구조에서는 승률이 62% 넘어야 본전이라는 뜻이고, 그 승률을 말할 표본은 없다.
오늘의 가장 큰 소득은 이익이 아니라 주문가 산식의 5표본 일치와 mfe/mae의 실동작이다. 가장 큰 미결은 재생이 본 두 번째 진입을 실전이 놓친 이유다. 그것이 규칙이라면 규칙을 몰랐던 것이고, 버그라면 오늘 손익은 절반이 사라진 값이다. 어느 쪽인지 모른다.