종목 거르는 피처·필터·알고리즘 쉽게 이해하기

작성자

카테고리:

결론부터 말씀드리면, 자동매매는 세 단계로 돕니다. 필터로 후보를 좁히고, 피처로 점수를 매기고, 알고리즘으로 사고팔지 결정합니다. 이 셋을 구분하는 순간 봇이 무슨 일을 하는지 눈에 들어옵니다.

저도 한참 헷갈렸습니다. 회사 채용에 비유하면 쉽습니다. 서류로 거르는 게 필터, 남은 사람을 항목별로 채점하는 게 피처, 그 점수로 뽑을지 정하는 규칙이 알고리즘입니다.

자동매매 봇의 종목 스크리닝 화면 — 후보 종목별 펀더멘털 통과 여부, 수급 트렌드(거래량 5일/20일), 외국인·기관 순매수 표시
봇이 매기는 종목 필터: 펀더·수급·거래량을 점수화해 후보를 거른다.

필터 — 어디서 낚을지 정한다

수많은 종목 중 볼 가치가 있는 것만 남기는 자격 조건입니다. 예를 들어 거래대금 상위, 특정 기준 돌파 같은 조건이죠.

초보의 실수: 필터를 너무 빡세게 걸면 통과 종목이 없어 봇이 온종일 아무것도 안 사고, 너무 느슨하면 잡주까지 다 걸려듭니다. 이 조이고 푸는 감을 잡는 게 일이었습니다.

피처 — 상태를 재는 계기판 눈금

한 종목의 상태를 숫자로 표현한 측정값입니다. RSI, 모멘텀, 거래량 급증 배수, 변동성, ATR 같은 것들이죠.

초보의 실수: “좋다는 지표는 다 넣자”며 덕지덕지 붙였습니다. 그런데 지표가 많다고 똑똑해지지 않습니다. 오히려 과거 데이터에만 들어맞는 과적합에 빠집니다. 계기판을 잔뜩 달고 정작 두세 개만 보는 격이었습니다.

알고리즘 — 언제 사고, 언제 파느냐

필터와 피처가 내놓은 정보로 실제 행동을 결정하는 규칙입니다. 진입·익절·손절·시간 청산 규칙의 묶음이죠.

초보의 실수: 익절과 손절의 균형(손익비)이 무너지면 계좌가 녹습니다. 제 첫 봇은 익절은 짧고 손절은 길어 손익비가 0.07까지 떨어졌습니다. 규칙 하나를 잘못 잡으면 승률이 높아도 돈을 잃습니다.

세 부품이 어긋나면 벌어지는 일

필터, 피처, 알고리즘은 따로 노는 부품이 아니라 하나의 흐름입니다. 그래서 어느 하나만 어긋나도 봇 전체가 이상해집니다.

어긋난 부품 벌어지는 일
필터 볼 종목 자체가 틀려, 좋은 규칙도 엉뚱한 대상에 적용됨
피처 지표가 과하면 헛것을 보고, 과거에만 맞는 판단을 함
알고리즘 제대로 골라놓고도 익절·손절 균형이 무너져 돈을 잃음

지표는 적을수록 강하다 — 과적합의 함정

초보가 가장 흔히 빠지는 함정은 “좋다는 지표를 다 넣는” 것입니다. 저도 그랬습니다. 그런데 지표가 많아질수록 봇은 똑똑해지는 게 아니라, 과거 데이터에만 그럴듯하게 들어맞는 과적합에 빠졌습니다. 나중에 보니 봇이 실제 판단에 쓰는 피처는 몇 개뿐이었습니다. 계기판을 잔뜩 달아놓고 운전은 두세 개만 보는 격이었습니다.

그래서 지금은 반대로 생각합니다. 지표를 더할 이유를 찾기보다, 뺄 수 있는 지표를 먼저 찾습니다. 꼭 필요한 몇 개만 남긴 봇이, 온갖 지표를 다 얹은 봇보다 실전에서 오래 버텼습니다.

개념을 알면 봇이 보인다

이 세 부품의 역할을 구분하고 나서야, 저는 제 봇이 무슨 일을 하는지 눈으로 따라갈 수 있었습니다. 코딩을 몰라도, 봇이 지금 어느 단계에서 무엇을 하는지 이해하면 AI에게 정확히 무엇을 고쳐달라고 말할 수 있습니다. 개념을 아는 것과 모르는 것의 차이는, 봇을 통제하느냐 봇에 끌려다니느냐의 차이입니다.

봇이 성장한 증거 — 더 정교해진 피처

첫 봇의 피처가 단순한 지표들의 나열이었다면, 두 번째 봇에서는 조금 더 정교한 신호를 넣어봤습니다. 예를 들어 기관의 매수세가 고점을 찍은 뒤 꺾이며 하락으로 반전하는 순간의 충격을 잡아내려는 시도였습니다. 단순히 ‘지금 과열인가’를 보는 데서 나아가, 수급과 가격의 변곡을 함께 읽으려 한 것입니다.

자동매매 봇의 코어 5종목 평점 카드 — RSI, 20일 이동평균, 거래량, 재무 지표, 수급을 종합한 점수
피처를 종합한 평점 카드. 기술·재무·수급을 하나의 점수로.

이런 피처가 반드시 성공을 보장하지는 않습니다. 다만 이 시도 자체가 봇이, 그리고 만드는 사람이 한 단계 자란 증거였습니다. 처음엔 ‘좋다는 지표 다 넣기’였다가, 이제는 ‘무엇을 왜 보는가’를 고민하게 된 것이니까요.

결국 사람이 이해한 만큼만 봇이 똑똑해진다

피처를 다루며 깨달은 것은, 봇은 만드는 사람이 이해한 딱 그만큼만 똑똑해진다는 사실이었습니다. 내가 왜 이 지표를 보는지 설명하지 못하면, AI에게도 제대로 시킬 수 없고 결과도 검증할 수 없습니다. 필터·피처·알고리즘이라는 세 부품을 구분해 이해한 것이, 코딩 문법을 아는 것보다 훨씬 크게 도움이 됐습니다.

화려한 지표를 많이 아는 것보다, 몇 개의 부품이 어떻게 맞물려 도는지를 아는 것. 그것이 코딩을 몰라도 봇을 통제하게 해주는 진짜 힘입니다.

필터가 무엇을 볼지 정하고, 피처가 그 상태를 재고, 알고리즘이 어떻게 할지 결정합니다. 셋 중 하나만 어긋나도 봇은 망가집니다. 넉 달간 계좌를 녹이며 배운 게 정확히 이것이었습니다.

코딩을 몰라도 이 세 부품의 이름과 역할만 기억하면 AI에게 훨씬 정확하게 시킬 수 있습니다. “필터가 너무 빡세니 조건을 완화해줘”, “피처가 너무 많으니 핵심 몇 개만 남겨줘”, “손익비가 나쁘니 알고리즘의 익절·손절 균형을 다시 잡아줘”처럼 말이죠. 개념은 지시를 정확하게 만들고, 정확한 지시가 좋은 봇을 만듭니다.

세 부품의 관점으로 봇을 바라보기 시작하면, 막연했던 자동매매가 손에 잡히는 기계처럼 보이기 시작합니다. 어느 단계가 고장 났는지 짚을 수 있으면, AI에게 정확히 그 부품만 고쳐달라고 시킬 수 있습니다. 이해가 곧 통제이고, 통제가 곧 안전입니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다