갭상승 롱온리를 접기로 했다, 실데이터가 내린 결론
급등주를 잡아 당일에 파는 방식, 갭상승 롱온리 백테스트로 700번 넘게 돌려봤다. 결론부터 말하면 안 됐고, 안 된 이유가 내가 예상한 것과 달랐다.
주식 자동매매를 만들어보겠다고 자료를 한참 모았다. 트레이딩 봇, 켈리 기준, 오픈소스 헤지펀드 같은 걸 몇십 개씩 저장해두고 있었으니까. 그러다 실제로 코드를 짜서 검증에 들어간 게 사흘. 그 사흘 동안 내가 제일 믿었던 전략 하나가 데이터에 맞아 죽었다. 죽는 과정이 좀 깔끔해서 남겨둔다.
📑 목차
- 1. 포커처럼 하면 되는 줄 알았다
- 2. 갭상승 롱온리가 무슨 말이냐면
- 3. 첫 판, 갭상승만 골라 담았더니 전부 마이너스
- 4. 그럼 갭을 아예 빼고 보자
- 5. 숫자가 말한 건 하나였다
- 6. 손익비를 키워도 기댓값이 안 움직인 이유
- 7. 접었다, 남은 건 뭔가
1. 포커처럼 하면 되는 줄 알았다
내가 처음에 밀었던 생각은 이거였다. 승률은 중요하지 않다, 중요한 건 손익비다. 포커처럼 잃을 땐 작게 잃고 딸 땐 크게 먹으면 된다. 그러니까 손절은 칼같이 하되 이익은 길게 끌고 간다. 이 원칙을 담을 자리로 급등주 모멘텀만 한 게 없어 보였다. 장중에 확 튀어오르는 종목을 잡아서 당일에 정리하면, 밤사이 무슨 일이 터질 걱정도 없고 하루하루 성적표가 딱 나온다. 고칠 것도 금방 보이고.
그래서 조건을 이렇게 잡아서 넘겼다. 장중에 시가보다 2% 오르고 거래량이 평소의 2배로 터진 종목에 들어간다. 자본은 100만원, 한 종목 몰빵은 안 한다, 주당 5만원 넘는 건 뺀다(100만원으로 정수주 사려면 그래야 하니까). 손절폭이랑 익절폭은 내가 정하지 말고 여러 조합을 다 돌려서 최적을 찾아라.
이때까지만 해도 나는 "얼마나 벌리나"를 궁금해했지, "되나 안 되나"를 의심하진 않았다.
2. 갭상승 롱온리가 무슨 말이냐면
용어부터 풀고 가자. 셋 다 별거 아니다.
갭상승은 어제 종가보다 오늘 시가가 높게 시작하는 것. 어제 5만원에 끝난 주식이 오늘 5만 2천원에 열리면 갭이 4% 뜬 거다. 밤사이 좋은 뉴스가 나왔거나 수급이 몰렸다는 뜻이라, 급등주를 찾는 사람들이 제일 먼저 보는 화면이 이 갭상승 리스트다.
롱온리(long only)는 사는 것만 한다는 뜻. 오를 때만 돈을 번다. 반대로 떨어질 때 버는 게 공매도인데 한국 개인은 사실상 못 한다. 그러니까 개인이 짜는 전략은 거의 다 자동으로 롱온리가 된다.
백테스트는 과거 데이터에 전략을 돌려서 "그때 이걸 했으면 어땠나"를 계산해보는 것. 돈은 안 쓰고 컴퓨터만 돌린다. 나는 코딩을 못 하니까 조건만 말로 던지고 클로드코드한테 엔진을 짜게 했다. 데이터는 증권사 API에서 1분봉을 받았는데, 실제로 긁어보니 과거 1년치 남짓까지만 응답이 오더라. 결국 9개월 구간, 종목·날짜 조합으로 1,397일치 분봉을 모아서 시작했다.
3. 첫 판, 갭상승만 골라 담았더니 전부 마이너스
첫 검증은 갭상승 3% 이상으로 걸러낸 종목들만 대상으로 돌렸다. 급등주를 찾는 거니까 당연히 그렇게 시작해야 한다고 생각했지.
돌아온 숫자가 좀 이상했다. 비용을 아예 빼기 전, 그러니까 순수하게 방향만 봤을 때도 마이너스였다. 갭상승한 종목을 시가에 그냥 사서 종가에 팔면 평균 −1.53%. 강하게 따라붙는 신호일수록 더 나빴다. 갭이 뜬 채로 열린 주식이 장중에 슬금슬금 흘러내리는 패턴, 흔히 페이드라고 부르는 그거였다.
여기서 나는 범인을 하나 지목했다. 갭상승으로 종목을 고르는 것 자체가 문제 아닌가? 이미 밤사이 오를 만큼 오른 애들만 골라놓고 "장중에 더 올라라"를 바라는 거니까. 근데 내가 원래 말한 조건에는 갭 얘기가 없었다. 장중에 +2% 튀는 종목을 잡으라고 했지, 갭상승만 보라고 한 적은 없다. 그러니까 여기서 죽은 건 내 전략이 아니라 내 전략의 한 조각일 뿐이었다.
세 갈래 중에 뭘 먼저 볼지 물어보길래, 갭 편향을 걷어내고 다시 재보라고 했다.
4. 그럼 갭을 아예 빼고 보자
종목 고르는 기준을 갈아엎었다. 갭이 아니라 전날 거래대금으로만 뽑는다. 전날 20억 이상 거래되고 종가가 5만원 이하인 종목 중 상위 8개. 이렇게 하면 갭상승이든 갭하락이든 보합이든 다 섞여 들어온다. 실제로 뽑힌 1,408건을 갭으로 나눠보니 갭하락 487, 보합권 685, 갭상승 236이었다. 갭상승은 오히려 소수였다.
이 유니버스에 똑같은 진입 규칙(장중 +2%, 거래량 2배)을 걸고 702번의 매매가 나왔다. 첫 판의 두 배가 넘는 표본이다.
그리고 이번엔 결과를 두 겹으로 쪼개서 보라고 했다. 비용 빼기 전(gross)과 비용 뺀 뒤(net)를 따로. 한국에서 주식 사고팔면 증권거래세랑 수수료로 왕복 0.4%쯤 나가는데, 이걸 섞어놓으면 "전략이 나쁜 건지 세금이 센 건지"를 구분할 수가 없다. 내 백테스트는 왕복 0.41%로 잡았다(세율·수수료는 증권사·시점마다 다르니 본인 계좌 기준으로 다시 봐야 한다).
| 갭 구간 | 매매 수 | 비용 전 기댓값 | 비용 후 기댓값 | 승률 | 손익비 |
|---|---|---|---|---|---|
| 갭하락 | 262 | +0.134% | −0.276% | 30.9% | 1.82 |
| 보합(0~3%) | 323 | −0.044% | −0.454% | 29.1% | 1.74 |
| 갭상승(3%+) | 117 | +0.059% | −0.351% | 29.9% | 1.84 |
| 전체 | 702 | +0.040% | −0.370% | 29.9% | 1.78 |
갭상승이 범인일 거라던 내 짐작은 틀렸다. 갭을 빼고 봐도 플러스는 나오지 않았다.
5. 숫자가 말한 건 하나였다
이 표에서 눈여겨볼 건 마이너스가 아니라 비용 전 숫자가 세 구간 모두 0 근처라는 것이다. +0.134%, −0.044%, +0.059%. 전체로는 +0.040%. 방향을 맞히는 능력이 사실상 없다는 뜻이다.
그리고 비용 후 −0.370%은 계산이 딱 맞아떨어진다. +0.040%에서 0.410%를 뺀 값. 손해의 100%가 비용이다. 전략이 돈을 까먹은 게 아니라, 애초에 벌어들이는 게 0인데 회전만 시켜서 세금과 수수료로 갈아 넣은 거였다.
이게 첫 판보다 훨씬 무거운 결론이다. 첫 판은 "갭상승 종목이 페이드하니까 안 된다"였다. 조건부다. 조건을 바꾸면 살아날 여지가 있다. 근데 이번 건 "이 신호에는 어느 국면에서도 방향성 엣지가 없다"다. 여지가 없다.
곁가지로 하나 재밌는 건, 그나마 덜 나쁜 게 갭하락 구간이었다는 것. 비용 전 +0.134%. 갭이 빠진 채 열린 주식이 장중에 되돌아오는 반등 패턴인데, 한국 시장이 단기 반전이 강하다는 얘기랑 맞는다. 근데 0.134%로는 0.41%를 못 넘는다. 방향은 맞는데 문턱을 못 넘는 거라, 공매도가 되는 사람에겐 기회일 수 있어도 롱온리인 나한테는 그냥 남의 떡이다.
6. 손익비를 키워도 기댓값이 안 움직인 이유
손절 2가지 × 익절 3가지, 총 6개 조합을 다 돌린 결과가 이렇다. 100만원으로 시작해서 9개월 뒤 남은 돈이다.
| 손절 | 익절 | 승률 | 손익비 | 기댓값 | 최종 자본 |
|---|---|---|---|---|---|
| 1.5% | +2% 고정 | 38.0% | 0.88 | −0.516% | 44.1만 |
| 1.5% | +5% 고정 | 23.8% | 2.22 | −0.422% | 51.4만 |
| 1.5% | 트레일 10% | 17.8% | 3.20 | −0.455% | 48.2만 |
| 2.0% | +2% 고정 | 45.2% | 0.72 | −0.497% | 44.5만 |
| 2.0% | +5% 고정 | 29.9% | 1.78 | −0.370% | 54.1만 |
| 2.0% | 트레일 10% | 22.8% | 2.47 | −0.459% | 47.7만 |
내 원래 가설, 그러니까 이익을 길게 끌면 승부가 난다는 얘기는 절반만 맞았다. 익절을 +2%에서 트레일링으로 바꾸니까 손익비가 0.88에서 3.20으로 뛴다. 평균 이익도 1.58%에서 5.75%로 커진다. 상단이 열린 건 사실이다.
문제는 같은 만큼 승률이 무너진다는 것. 38%가 17.8%가 된다. 크게 먹는 대신 먹는 횟수가 줄어드는데, 그 교환비가 정확히 상쇄돼서 기댓값이 안 움직인다. 6개 조합 전부 −0.37%에서 −0.52% 사이에 갇혀 있다.
왜 이렇게 되는지 산수로 따져보면 허무할 정도로 간단하다. 방향을 맞히는 능력이 0이면, 주가가 익절선에 먼저 닿을 확률은 손절폭과 익절폭의 비율로만 결정된다. 손절 2%, 익절 10%면 익절 먼저 닿을 확률이 딱 6분의 1. 손익비 5배 × 확률 6분의 1이니까 기댓값은 정확히 0이다. 그리고 여기서 비용을 빼면 마이너스로 확정된다.
손익비는 결과를 담는 그릇이지 결과를 만드는 장치가 아니었다. 그릇 모양을 아무리 바꿔도 안에 든 게 0이면 0이다. 포커 비유를 계속 쓰자면, 나는 베팅 사이즈 조절법을 붙들고 있었는데 정작 내 손에 든 카드가 무작위였던 셈이다.
7. 접었다, 남은 건 뭔가
여기서 이 트랙을 접었다. 실제로 이 전략을 돌렸다면 9개월 만에 100만원이 44만~54만원이 됐을 거고, 잃은 돈의 전부가 세금과 수수료였을 거다.
솔직하게 짚어둘 한계도 있다.
돌린 구간이 1년도 안 된다. 시장 국면이 한 가지밖에 안 들어갔다는 뜻이라, 다른 국면에서도 같을지는 이 데이터로 말 못 한다. 갭상승 구간은 117건뿐이라 표본도 얇다. 손절×익절 조합을 6개 돌린 것도 엄밀히는 여러 번 시험한 거라 통계적 보정이 필요한데(같은 데이터에 여러 전략을 대보면 우연히 좋아 보이는 게 하나쯤 나오게 마련이라 그걸 걸러내는 절차가 따로 있다), 이번엔 안 했다. 그리고 비용 0.41%에는 슬리피지가 안 들어갔다. 급등하는 종목을 쫓아가 사면 내가 원한 가격보다 비싸게 체결되는데, 이걸 넣으면 결과는 더 나빠지지 좋아지진 않는다.
그러니까 이 글의 결론은 "급등주 당일매매는 절대 안 된다"가 아니다. "내가 짠 이 조건으로, 이 데이터에서, 이 비용 구조로는 안 됐다"까지가 정확한 문장이다. 딱 거기까지만 말할 수 있다.
근데 여기까지만 해도 100만원어치는 아꼈지.
이 과정에서 실제로 배운 건 전략보다 검증 절차 쪽이었다. 비용 전과 후를 갈라서 보지 않았으면 나는 아직도 "손절폭을 더 조여야 하나" 같은 걸 만지고 있었을 거다. 숫자 하나에 원인이 두 개 섞여 있으면 뭘 고쳐야 할지 영영 모른다. 이건 AI 모델 비교하면서 채점표를 세 번 고쳤을 때랑 로컬 LLM이 싸다는 말을 실측으로 깨봤을 때랑 똑같은 얘기였다. 짐작으로 굴리다 실측하면 대개 짐작이 진다.
한 가지 아쉬운 건, 이걸 조건 6개만 돌려보고 끝냈다는 거다. 이런 데이터는 작은 설정 차이 하나가 결과를 크게 흔드는데, 나는 안 되는 걸 확인하자마자 다른 걸로 넘어가려 했다. 조건을 조금씩 바꿔가며 계속 굴려보는 쪽이 원래 하려던 거였는데. 그건 AI한테 리서치를 통째로 맡겼다가 데인 얘기랑도 닿아 있어서, 별도로 정리해야 할 것 같다.
그리고 지금은 회전율이 낮은 쪽을 보고 있다. 매매 횟수가 적으면 비용이 그만큼 희석되니까. 이번 데이터가 가리킨 방향이 그쪽이기도 하고. 아직 결론은 안 났다. 3줄 요약 - 급등주 당일매매를 700번 넘게 백테스트했는데, 갭상승만 골랐을 때도 갭을 뺐을 때도 비용 전 기댓값이 0이었다. - 손해의 전부가 거래비용이었다. 손익비를 4배 키워도 승률이 그만큼 떨어져서 기댓값은 안 움직였다. - 손익비는 엣지가 있을 때 그 엣지를 키우는 장치지, 없는 엣지를 만들어내진 못한다.
이걸 코드로 먼저 확인한 게 다행이었다. 계좌로 확인했으면 배우는 값이 56만원쯤 됐을 테니.
이 글은 정보 제공 목적이고, 작성 시점(2026년 8월) 기준이다. 특정 종목·전략의 매수나 매도를 권유하지 않고 수익을 보장하지도 않는다. 본문의 백테스트는 내 조건과 내 가정으로 돌린 결과라 다른 기간·다른 유니버스·다른 비용 가정에서는 다르게 나올 수 있다. 거래세율·수수료·API 사양은 시점과 증권사에 따라 바뀌니 직접 확인해야 한다. 투자 판단과 그 결과는 본인 책임이다.
참고한 공식 자료 - 증권사 오픈 API(분봉·시세 사양): koreainvestment/open-trading-api - 백테스트 과최적화 확률(PBO) 원논문: The Probability of Backtest Overfitting (SSRN) - 여러 번 시험한 성과를 깎아내리는 지표(Deflated Sharpe): The Deflated Sharpe Ratio (SSRN) - 데이터 마이닝 함정에 대한 운용사 관점: AQR, Lies, Damned Lies, and Data Mining - 액티브 전략이 지수를 이기는 비율(장기 통계): SPIVA U.S. Year-End 2024