매수 신호가 여러 개일 때 종목 고르는 기준 — 점수제 검증
신호가 10개 나왔습니다. 뭘 사야 할까요
이 글은 그 질문에 답을 찾다가 세 번 헛짚은 기록입니다.
먼저 문제부터 말씀드리면 이렇습니다.
매수 조건에 맞는 종목이 하루에 여러 개 나옵니다. 그런데 돈은 한정돼 있습니다. 미국 500종에 규칙을 다 적용해보니 한 번에 124종을 들고 있어야 했습니다. 계좌가 1,000만원이면 한 종목에 8만원입니다.
그래서 골라야 합니다. 무엇으로 고를까요.
시스템에는 이미 점수가 있었습니다
0점부터 100점까지 매기는 점수입니다. 네 가지를 더합니다.
| 항목 | 배점 |
|---|---|
| 성적이 검증된 업종인가 | 15점 |
| 거래량이 평소보다 많은가 | 25점 |
| 조건을 몇 개 충족했는가 | 30점 |
| 손절선까지 거리가 짧은가 | 30점 |
문제는 이 점수가 맞는 점수인지 아무도 확인한 적이 없다는 것이었습니다. 만들어놓고 그냥 화면에 띄우고 있었습니다.
첫 번째 헛짚음: "점수 높은 순으로 3개만 사자"
당연해 보였습니다. 매일 신호가 나오면 점수 순으로 줄 세워서 위에서 3개만 사면 되지 않을까요.
10년치로 확인해봤습니다.
| 매일 사는 개수 | 매매 1건당 성적 |
|---|---|
| 점수 상위 3개만 | 0.127 |
| 상위 12개 | 0.129 |
| 상위 50개 | 0.148 |
| 전부 다 | 0.151 |
골라낼수록 나빠졌습니다. 예상과 정반대였습니다.
이유는 생각해보니 간단했습니다. "그날의 상위 3개"는 반에서 1등입니다. 반 전체가 못하는 날에도 1등은 나옵니다. 신호가 다 시원찮은 날에도 억지로 세 개를 채우는 셈입니다.
두 번째: 등수 말고 점수로 자르니 됐습니다
"오늘 1등"이 아니라 "70점 넘으면 산다" 로 바꿔봤습니다.
| 기준 | 해당 매매 | 1건당 성적 |
|---|---|---|
| 전부 다 삼 | 100% | 0.151 |
| 60점 이상만 | 54% | 0.207 |
| 70점 이상만 | 21% | 0.312 |
| 75점 이상만 | 10% | 0.414 |
이번엔 깨끗하게 올라갔습니다. 70점 기준으로 자르면 성적이 두 배가 됩니다.
차이는 하나였습니다.
등수로 자르면 시원찮은 날에도 억지로 삽니다. 점수로 자르면 기준에 못 미치는 날은 아무것도 안 삽니다.
"살 게 없으면 안 산다"를 허용하느냐가 갈랐습니다.
세 번째: 실제 기록을 열어보니 텅 비어 있었습니다
과거 데이터로는 확인했으니, 실제로도 그런지 봐야 합니다.
다행히 준비돼 있었습니다. 저희 시스템은 매매를 하지 않아도 모든 신호의 결과를 자동으로 따라갑니다. 888건이 쌓여 있었습니다.
70점 넘는 것만 뽑아봤습니다.
```
70점 이상 4건
70점 미만 618건
```
이상했습니다. 과거 데이터에서는 다섯 중 하나가 70점 이상이었는데, 실제 기록에서는 거의 없습니다.
점수 분포를 찍어봤습니다.
```
점수 중간값 : 0점
```
888건 중 626건의 점수가 0점이었습니다.
코드를 열어보니 한 줄이 있었습니다.
```
score: 0,
```
과거 신호를 채워 넣는 프로그램이 점수를 계산하지 않고 그냥 0을 적어 넣고 있었습니다.
즉 "점수가 실제로도 통하는가"를 확인할 자료가 애초에 없었습니다. 있는 줄 알았을 뿐입니다.
덤: 제가 숫자를 잘못 세기도 했습니다
같은 날, 손절이 얼마나 자주 실패하는지 재면서 이런 결과를 냈습니다.
손절선보다 크게 잃은 경우 52.5%
절반이 넘는다니 이상했습니다. 다시 보니 수수료 때문이었습니다. 계획대로 손절돼도 수수료가 붙어서 아주 조금 더 손해가 납니다. 그걸 전부 "손절 실패"로 세고 있었습니다.
제대로 다시 세니 이랬습니다.
| 결과 | 비율 |
|---|---|
| 계획대로 손절됨 | 60.9% |
| 조금 더 잃음 | 4.4% |
| 꽤 더 잃음 | 1.1% |
| 크게 뚫림 | 0.9% |
실제로 손절선이 크게 뚫리는 건 100번에 2번이었습니다. 52.5%가 아니라요.
오늘 배운 것 네 가지
하나. 만드는 것과 기록하는 것은 다른 일입니다.
점수 계산은 잘 돌아가고 있었습니다. 화면에도 나왔습니다. 그런데 결과를 추적하는 쪽에는 안 들어가고 있었습니다. 만들어놓고 쓰지 않으면 몇 달이 지나도 검증이 시작되지 않습니다.
둘. 결과가 이상하면 데이터부터 의심합니다.
"70점 이상이 4건뿐"이라는 게 이상해서 파고들었기 때문에 찾았습니다. 그냥 "실전에서는 잘 안 되나 보다" 하고 넘어갔으면 틀린 결론을 사실로 믿었을 것입니다.
셋. 직관은 자주 틀립니다.
"위에서 몇 개만 사면 낫겠지"는 완전히 반대였습니다. 재보기 전에는 알 수 없었습니다.
넷. 내가 낸 숫자도 의심해야 합니다.
52.5%가 나왔을 때 "이상한데" 하고 멈춘 게 다행이었습니다. 숫자가 나왔다고 맞는 게 아닙니다.
점수를 채우고 나서 — 네 번째 헛짚음
점수 0 문제를 고치고, 888건 전부 다시 계산해 채웠습니다. 드디어 "점수가 실전에서도 통하는가" 를 볼 수 있게 됐습니다.
열어봤더니 이랬습니다.
| 점수 | 건수 | 1건당 성적 |
|---|---|---|
| 0~50 | 117건 | −0.452 |
| 50~60 | 209건 | −0.363 |
| 60~70 | 191건 | −0.378 |
| 70 이상 | 105건 | −0.266 |
전부 마이너스입니다. 과거 검증에서 70점 이상이 +0.312였는데 실전은 −0.266입니다.
여기서 "역시 실전은 다르구나" 하고 끝냈으면 또 틀릴 뻔했습니다. 진입한 달별로 나눠봤더니 원인이 나왔습니다.
| 진입 시기 | 전체 | 끝난 것 | 아직 보유 중 |
|---|---|---|---|
| 3월 | 89건 | 89건 | 0 |
| 5월 | 140건 | 137건 | 3건 |
| 7월 | 238건 | 146건 | 92건 (39%) |
| 8월 | 149건 | 3건 | 146건 (98%) |
최근에 산 것은 아직 안 끝났습니다.
그런데 성적은 끝난 것만 계산합니다. 그러면 무슨 일이 벌어지냐면 — 빨리 끝난 것만 집계에 들어갑니다. 그리고 빨리 끝나는 건 대부분 손절입니다. 잘 가고 있는 종목은 아직 들고 있어서 숫자에 안 들어갑니다.
7월 승률이 2%로 나온 게 이 때문이었습니다. 실제로 그렇게 나쁜 게 아니라, 손실만 먼저 계산에 들어간 것입니다.
편향을 걷어내고 다시 보니
충분히 시간이 지난 것만 골랐습니다. 6월 이전에 산 것, 그리고 성적이 검증된 업종만. 176건입니다.
```
승률 30% · 1건당 +0.219
```
플러스입니다. 과거 검증치(+0.151)와 비슷한 수준입니다. 규칙 자체는 실전에서도 작동하고 있었습니다.
그리고 하나가 더 뚜렷하게 갈렸습니다.
| 1건당 성적 | |
|---|---|
| 성적이 검증된 업종 | −0.160 |
| 검증 안 된 업종 | −0.580 |
검증 안 된 업종이 3.6배 나빴습니다. 업종을 거르는 게 점수보다 먼저입니다.
그런데 점수는 아직 확인이 안 됩니다
편향을 걷어낸 176건을 점수대로 나눠봤습니다.
| 점수 | 과거 검증 | 실전 |
|---|---|---|
| 0~60 | 0.151 | +1.291 |
| 60~70 | 0.207 | −0.045 |
| 70 이상 | 0.312 | −0.029 |
과거에서는 점수가 높을수록 좋았는데, 실전에서는 반대로 나왔습니다.
여기서 또 멈춰야 합니다. 각 구간이 34~79건밖에 안 됩니다. 이 글 앞부분에서 이야기한 그 문제입니다. 34건짜리 +1.291은 큰 수익 한두 개가 만든 값일 가능성이 큽니다.
즉 "점수가 실전에서 통하지 않는다"고 결론 내릴 수도 없습니다. 아직 모릅니다.
그래서 적용하지 않았습니다
과거 데이터에서는 강했지만 실전 확인이 안 됐습니다. 지금 "70점 이상만 산다"를 넣으면 검증되지 않은 기준으로 매매하는 것입니다. 이 시리즈에서 계속 피하려던 바로 그 실수입니다.
지금 확실한 것만 적으면 이렇습니다.
- 검증된 업종만 산다 — 실전에서 확인됨
- 지수가 200일선 아래면 쉰다 — 과거 20년 검증 완료
- 점수로 고른다 — 아직 판단 보류. 몇 달 더 쌓고 다시 본다
이제 점수는 제대로 기록됩니다. 넉 달쯤 뒤에 다시 열어보면 답이 나올 것입니다.
정리하면
하루에 네 번 헛짚었습니다.
1. 상위 몇 개만 사면 낫겠지 → 반대였다
2. 점수로 자르니 되네 → 과거에서만
3. 실전 기록으로 확인하자 → 점수가 텅 비어 있었다
4. 채우고 보니 전부 마이너스네 → 아직 안 끝난 매매를 빼고 센 착시였다
네 번 다 "이상한데?" 하고 한 번 더 파봤기 때문에 찾았습니다. 그냥 넘어갔으면 네 번 다 틀린 결론을 사실로 믿었을 것입니다.
틀렸다는 걸 빨리 아는 것도 진도입니다.
*이 글의 수치는 실제 검증과 시스템 기록에서 나온 값입니다. 과거 성과가 미래를 보장하지 않으며, 투자 판단과 책임은 본인에게 있습니다.*
- 첫 댓글을 남겨보세요.
연금·절세·ETF·노후 설계 자료와 새 계산기 소식을 이메일로 보내드립니다. 광고성 메일은 보내지 않습니다.