← 빌드 일지
Sniper2026-05-31·6분 읽기

2026-05-30 Sniper 일지 — 셧다운 19 일째, 거래 0 건. 단 = 7 결함 전면 수정 + pytest 110/110 PASS

어제 (2026-05-30) Sniper 활동

  • 거래: 0 건
  • 봇 프로세스: 0
  • USDT 잔액: $0
  • 셧다운 일수: 19 일째 (2026-05-12 ~)
  • 마지막 거래: 2026-05-12 00:27:13 SAGA/USDT LOSS -$0.34

운영 차원

라이브 봇 운영은 그대로 멈춰있다. 5/12 새벽 SAFE-12 일일 손실 한도 트리거 이후 자본 노출 $0 상태 유지, watcher 이벤트 0 건, healthcheck 알람 0 건. daily_pnl_v3_7_1.json 마지막 엔트리 5/12 -$0.67 그대로 멈춰있고 sniper_v3_7_1.log 도 5/12 00:48 KST SAGA 거절 로그가 마지막이다. 봇 자체는 의도된 셧다운 상태로 안정적.

5/30 = 코드 차원의 큰 milestone

운영 차원과 별개로, 5/30 새벽이 V5.0-SHORT 코드 라인의 분수령이었다. 5/30 06:30 KST 에 sniper-auditor + sniper-backtest-engineer 두 subagent 독립 검증을 동시에 돌렸고, 두 결과 모두 RED 가 나왔다. 그 RED 를 같은 day 안에 전면 수정해 코드 측면만큼은 안전 상태로 끌어올린 것이 5/30 의 핵심 사건이다.

audit 결과 = CRITICAL 2 + HIGH 5

sniper-auditor 가 찾은 결함:

  • C1: paper_runner.py hold/exit loop 자체가 코드에 없음. 진입 후 TP / SL / 트레일링 / 타임아웃 / flash pump 청산 / 강제청산 근접 6 가지 청산 경로 호출이 0 회였고, SHUTDOWN 한 번만 close. 라이브 진입 시 손실 무제한 위험.
  • C2: ccxt 예외 4 종 (NetworkError / RateLimitExceeded / ExchangeError / OnMaintenance) uncaught. 프로세스 crash 시 포지션 회수 불가.
  • H1: flash pump detector 정의만 있고 paper_runner 에서 호출 0 회 = dead code.
  • H2: SAFE-12 apply_pnl 청산 후 호출 라인 없음 = 일일 손실 한도 영구 미작동.
  • H3: PID 락 없음 = V3.7.1 의 V3.9.1+ 패치 누락 반복.
  • H4: SIGTERM / Ctrl+C 시 open_positions cleanup handler 없음 = orphan position.
  • H5: funding cumulative + max_hold 코드 자체 없음.

5/22 self-audit 때 P0=0 으로 통과한 게 = reduceOnly 함수 시그니처 7-way 강제만 검증했고 실제 호출 경로 자체가 코드에 없는 건 미발견이었다. subagent 독립 검증의 가치를 다시 확인한 사례.

sniper-backtest-engineer 결과 = -EV 확정

58 일 5m 캔들 / 10 USDM-perp / Binance funding 8h 실데이터 셋업 위 walk-forward 60/40 split:

  • 5/22 baseline: 13 trades, 승률 23%, 누적 -2.76%, Sharpe -4.49, R:R 1.65, MDD 4.23%
  • OOS 구간: 7 trades, 승률 14%, 누적 -3.06%, R:R 0.23, Sharpe -21.79
  • Grid search 81 조합 = OOS 흑자 조합 0 개
  • 같은 시장 regime 에서 LONG / SHORT 양쪽 다 손실 = mirror 가정 부정

500 만원 라이브 35 일 시뮬레이션 추정 자본 손실 = -100 만 ~ -450 만원 (= 코드 결함 증폭 포함). 결론은 명확하다. 500 만원 라이브는 절대 X.

quant-trader 가 같은 day 안 7 결함 전면 수정

audit RED 결과 직후 quant-trader 위임 = 같은 day 안 7 결함 모두 수정 완료:

  • C1 = paper_runner.py hold/exit loop +280 줄. 7 청산 reason 다 호출 경로 연결.
  • C2 = ccxt 예외 5 종 catch +60 줄. NetworkError / RateLimitExceeded (1 회 retry, 3 회 누적 실패 시 SHUTDOWN) / ExchangeError (즉시 SHUTDOWN) / InsufficientFunds (SAFE-12 위반 처리) / OnMaintenance (5 분 sleep 재시도).
  • H1 = flash pump detector hold loop 안 호출 +20 줄.
  • H2 = apply_pnl + save_daily_pnl_state 청산 후 호출 +90 줄.
  • H3 = PID 락 +140 줄. Windows msvcrt.locking + POSIX fcntl.flock 양쪽 호환.
  • H4 = SIGTERM/SIGINT/atexit cleanup +60 줄.
  • H5 = funding cumulative + max_hold (= 7.5h) +30 줄.

검증 통과

  • pytest 110/110 PASS (= 기존 83 + 신규 integration 27, 3.47 초)
  • py_compile 9 파일 전부 OK
  • 라이브 가드: --no-dry-run --mainnet = exit 2 차단 동작
  • LiveExecutorFutures stub 유지 = 라이브 진입 자체 NotImplementedError 게이트
  • End-to-end dry-run lifecycle 정상

결론 = 코드는 안전, 전략은 여전히 -EV

5/30 의 큰 흐름이 정리되는 한 줄: 코드 측면만 보면 라이브 진입 가능 수준까지 단단해졌지만, 전략 자체가 -EV 라 라이브 진입은 여전히 보류. quant-trader 자체 권고도 같은 결을 유지한다 = OOS Sharpe -21.79 + 흑자 grid 0/81 = 500 만원 라이브 강력 비권고. 결정 시에는 V3.9.1 의 SAFE-06 (FSM) / SAFE-09 (shutdown cancel + free-balance polling) 패턴 추가 이식이 선행 조건.

다음 단계

  • D3 = 실제 시장 데이터 fetcher (= fetch_ohlcv + fetch_funding_rate + fetch_order_book) 구현. paper/testnet 의 진짜 시그널 발화를 위한 선결 작업.
  • Binance Futures Testnet API 키 발급 (= testnet.binancefuture.com, 잭 수동 10 분).
  • testnet 24-72h 무사고 검증 = 청산 0 / 시그널 발화 ≥ 10 건 / funding 평균 < 0.03%.
  • micro-live $50 (= 7 만원) N=20 검증 후 Kelly fraction 결정.
  • V5.0-SHORT spec 재설계 옵션 = bounce_pct → breakdown-momentum, RSI 60-75 → 50-70, ADX 가드 추가, 추세 강도 + 변동성 regime 필터.

메타 reflection

셧다운 19 일째 = 자본 라인은 0 으로 잠겨있지만 코드 라인은 5/30 하루에 큰 채무를 갚았다. CRITICAL 2 + HIGH 5 가 audit 에 잡히고도 같은 day 에 fix + pytest 110/110 통과까지 가는 cadence 가 = subagent 협업의 진짜 가치가 드러난 케이스. 단 전략 자체의 -EV 는 코드 수정으로 풀리는 문제가 아니라 = signal 자체 재설계 + 6 개월 이상 실데이터 위 재검증이라는 다음 큰 산이 그대로 남아있다.

Wildeconforce

매일 만들고, 매일 분석하고, 매일 기록합니다.
© 2026 wildeconforce · build-in-public

이 사이트는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.