새필터는 실거래에 넣기전에 관찰 기록부터 쌓는다 > 매매 기술 노트
본문 바로가기
코인랩 코인랩 업비트·빗썸 자동매매 리서치 & 기술노트
사이트 내 전체검색

매매 기술 노트

전략이론 새필터는 실거래에 넣기전에 관찰 기록부터 쌓는다

게시물 옵션

본문

새 필터를 실거래에 바로 넣으면, 성적이 바뀌어도 필터 덕인지 시장 탓인지 가를 수 없다. 코인랩 역추세 봇은 변동성 필터를 들일 때 매수와 매도 판정 코드를 건드리지 않고 계산, 기록, 표시, 통합의 네 단계로 관찰 데이터부터 쌓았다. 그 절차와 단계마다 막은 사고를 정리한다.

ATR 지표 글 끝에 이 필터는 기록을 쌓는 단계라고 적었다. 왜 그런 단계가 필요했는지, 기록을 어떻게 쌓았는지는 쓰지 않았다. 이 글이 그 절차다. 지표 자체의 정의는 ATR(Average True Range) 지표 — 변동성을 숫자로 측정하는 법에 있어서 여기서는 다루지 않는다.

1. 출발점: 사후 분석에서 나온 패턴은 가설이다

2026년 8월 13일 저널 분석에서 실제 매수로 이어진 시그널 180건을 매수 시점의 변동성으로 나눠 봤다. 결과는 U자 모양이었다. 변동성이 낮은 구간은 매수 후 첫 보호 수익선에 닿은 비율이 9.5%, 평균 청산 손익이 -0.352%로 가장 나빴다. 적정 구간만 +0.071%로 유일하게 플러스였고, 높은 구간은 다시 -0.056%로 나빠졌다.

변동성 구간별 평균 청산 손익: U자 모양 구간별 평균 청산 손익 (실제 매수로 이어진 180건) 낮음 구간 · 21건 -0.352% 적정 구간 +0.071% 높음 구간 · 38건 -0.056%

사후 분석으로 나눈 구간별 평균. 구간 경계값은 공개하지 않는다. 구간별 건수는 낮음 21건, 높음 38건이다.

문제는 이 패턴이 나온 데이터 자체다. 180건을 나눠 보다가 찾은 모양이라, 같은 데이터로는 그 모양이 맞는지 확인할 수 없다. 낮음 구간은 21건으로 표본도 작았다. 여기서 바로 매수 조건에 변동성 필터를 넣는 선택지도 있었다. 그러지 않고, 같은 정의로 앞으로의 데이터를 쌓기로 했다.

2. 절차: 판정 코드와 관찰 코드를 나눈다

규칙은 하나다. 관찰을 위한 변경은 매수와 매도를 판정하는 함수를 바꾸지 않고, 그 옆에 병렬로 붙인다. 이 봇의 다른 관찰 전용 기능(슬로프 게이트, 가상 청산 추적, BTC 게이트 관찰)도 같은 패턴이었고, 변동성 필터는 그 방식을 네 단계로 쪼갰다.

단계날짜한 일실거래 판정
① 계산8월 13일지표 계산과 코인별 조회 함수만 추가, 호출 없음변경 없음
② 기록8월 14일관찰 테이블 신설, 자동 매수 체결 직후 한 줄 기록변경 없음
③ 표시8월 14일대시보드 상태 칩 추가, 판정 조건과 분리된 필드변경 없음
④ 통합8월 14일흩어진 관찰 테이블을 한 화면으로, 조건 값을 구조화 기록변경 없음

3. 단계마다 막은 사고

  • 기록 시점. 기록은 신호가 뜬 순간이 아니라 매수가 체결된 직후에 건다. 앞서 쌓아 둔 관찰 데이터의 정의가 실제 매수로 이어진 케이스였기 때문이다. 정의가 다르면 새 기록과 옛 분석을 비교할 수 없다. 수동 매수 경로에는 걸지 않았다.
  • 격리. 기록 블록은 예외 처리로 감쌌다. 변동성 조회가 실패해도 매수 성공 처리, 알림, 보유 갱신으로 번지지 않는다. 남는 위험은 조회가 동기 호출이라 느리면 완료 로그와 알림이 늦어지는 것이다. 상한이 걸려 있고 매 루프에 이미 같은 방식의 호출이 있어서 새로운 유형의 위험은 아니라고 판단했다.
  • 칩 분리. 대시보드의 매수 조건 배열은 칩을 그리는 데만 쓰이지 않았다. 충족 개수 라벨, 근접도, 차단 사유 박스, 매수 임박 효과가 모두 이 배열에서 파생된다. 변동성을 여섯 번째 조건으로 넣었다면 라벨이 "6/5"로 깨지고 임박 효과가 잘못 켜질 뻔했다. 그래서 별도 필드로 두었고, 조건 배열은 지금도 5개다. 이미 있던 슬로프 필드가 같은 문제를 피하려고 분리돼 있던 선례를 따랐다.
  • 값의 성격. 새 관찰 값을 추가할 때는 두 가지를 먼저 묻는다. 이 값이 판정 배열에 섞이는가, 그리고 기준값인가 상태값인가. 기준값은 등급별로 가리고 상태값만 모든 등급에 보여 준다.
  • 통합. 슬로프, 변동성, BTC 관찰 테이블 3개가 각자 따로 놀고 있었다. 한 화면으로 모으면서, 로그 텍스트를 정규식 4종으로 다시 읽던 구조를 구조화 기록으로 바꿨다. 기록량은 최근 10일 로그에서 하루 평균 5,563건(3,804~7,170 범위)으로 실측했고, 보관은 90일로 정했다.

4. 판정이 안 바뀌었다는 것을 확인한 방법

  • 라이브 DB는 건드리지 않고 임시 DB 파일에서 스키마와 기록을 검증했다. 컬럼 6개가 모두 기대한 값으로 저장됐다.
  • 구간 판정은 경계 부근 값 전건을 오프라인 단위 테스트로 확인했다.
  • 통합 작업의 diff는 삭제 0줄, 추가 78줄, 5개 지점이었다. 매수 최종 결정문은 바이트 단위로 같고 위치만 밀렸다. 화면과 API 파일도 삭제 0줄이다(각각 +1줄, +47줄).
  • 봇을 재시작한 뒤 실시간 신호 파일을 직접 읽어 구간 판정과 조건 배열 개수가 그대로인지 확인했다. 재시작은 프로세스를 종료하면 워치독이 약 10초 안에 다시 띄우는 방식이었고, 보유 중이던 포지션(수익률 -0.25%)이 정상 복원됐다.
  • 재시작 직후 구조화 기록은 9건에서 40여 초 뒤 21건으로 늘었다. 기록이 실제로 쌓이는지 눈으로 확인한 것이다.

5. 이 관찰의 한계

처음 U자 패턴은 지난 시그널을 사후에 나눠 본 결과다. 소급 분석은 우연히 그럴듯한 모양이 나오기 쉽고, 패턴을 찾은 데이터로 그 패턴을 검증할 수는 없다. 그래서 가설로 두고, 기록을 시작한 뒤 새로 쌓인 관찰 데이터가 30건 이상이 되면 그 데이터만으로 다시 검증하기로 했다. 실거래 조건은 표본이 모자라던 구간이 채워질 때까지 바꾸지 않는다.

관찰에는 빈틈도 있다. 최소 거래량 필터로 대기 상태인 코인은 상태 칩이 표시되지 않는다. 기존 조건 칩도 같은 상황에서 안 뜨던 동작이라 회귀는 아니지만, 그 코인들은 화면으로 보이지 않는다. 또 기록이 체결 성공 시점에 걸려 있어서, 신호는 떴지만 체결되지 않은 경우는 이 데이터에 들어가지 않는다.

6. 바꾼 것과 바꾸지 않은 것

바꾼 것은 관찰 전용 계산, 기록, 표시, 통합 도구다. 바꾸지 않은 것은 매수 조건과 매도 로직, 그리고 판정에 쓰는 모든 함수다. 위 diff가 그 근거다. 변동성 필터를 판정에 넣는 건 관찰 데이터로 가설을 다시 검증하고 내가 직접 결정한 뒤의 일이다.

아직 모르는 것

  • 관찰 기록과 실제 매매 결과를 대조한 분석은 아직 없다. 지금까지 쌓인 건수도 이 글을 쓰는 시점에는 집계하지 않았다.
  • U자 모양이 표본이 늘어도 유지되는지 모른다. 유지되지 않으면 판정에 넣을 근거가 없다.
  • 같은 절차가 추세추종 봇의 새 필터에도 그대로 맞는지는 확인하지 않았다.

함께 읽기

이 글을 쓴 사람

코인랩 운영자

업비트에서 역추세 반등 봇을, 빗썸에서 추세추종(변동성 돌파) 봇을 직접 설계·구현해 실제 자금으로 24시간 운용하고 있습니다. 전제가 정반대인 두 전략을 서로 다른 거래소에서 나란히 돌려 비교합니다. 이 글에 나오는 수치는 운용 중인 봇의 체결 로그와 백테스트 결과에서 직접 뽑은 값이며, 외부 인용이나 추정치가 아닙니다.

  • 근거 데이터 업비트·빗썸 실거래 체결 로그 및 공개 시세 API
  • 집필·검수 코인랩 운영자 (AI 도구는 문장 교정에만 사용)
  • 문의 coinlabkr@gmail.com

이 글은 정보 제공 목적이며 투자 권유가 아닙니다. 투자 유의사항 및 면책조항을 함께 읽어 주세요.

추천0 비추천0
스크랩 · 신고
매매 기술 노트 • OFFICIAL

매매 기술 노트

RSI·볼린저밴드·이동평균선·MACD·거래량 지표 정리와 적용 경험
24TOTAL
24POSTS

매매 기술 노트

24건
매매 기술 노트 목록
번호 제목 글쓴이 날짜 조회
24
<
코인랩
10-18 19
열람중
<
코인랩
10-11 41
22
<
코인랩
09-10 190
21
<
코인랩
08-08 1467
20
<
코인랩
09-01 198
19
<
코인랩
08-27 268
18
<
코인랩
08-22 409
17
<
코인랩
08-19 318
16
<
코인랩
08-18 541
15
<
코인랩
08-17 349
14
<
코인랩
08-14 371
13
<
코인랩
08-13 426
12
<
코인랩
08-10 350
11
<
코인랩
08-09 337
10
<
코인랩
08-09 362
운영자

업비트에서 역추세 반등 봇, 빗썸에서 추세추종 봇을 직접 만들어 실제 자금으로 24시간 돌리는 개인 개발자입니다. 이 사이트의 숫자는 봇 체결 로그에서 나온 값이고, 손실도 같은 크기로 공개합니다.

종목 추천 · 유료 리딩 · 봇 판매는 하지 않습니다.