두 모델을 공정하게 붙여보려고 시뮬레이터를 하나 만들었는데, 정작 배운 건 "이 질문은 수익만으로는 답이 안 나온다"와 "돈은 더 똑똑한 두뇌가 아니라 다른 곳에 있다"는 사실이었습니다
퀀트봇의 종목 추천을 만드는 "두뇌" 자리에 두 가지 선택지가 있습니다.
하나는 제 컴퓨터에서 직접 돌리는 무료 모델입니다. 다른 하나는 훨씬 크지만 쓸 때마다 돈이 나가는 외부 유료 API 모델입니다.
이 무료 모델을 돌리는 하드웨어는 게이밍용 그래픽카드입니다. 카드 한 장(16GB)이면 오픈소스 모델 중 가벼운 축을 무난히 돌릴 수 있는데, 체감상으론 예전 ChatGPT 무료판(GPT-3.5) 정도 급이라고 보시면 됩니다.
같은 카드를 하나 더 들여 두 장으로 나눠 쓰면 그보다 훨씬 큰 모델까지 올라갑니다. 정확히 등호로 놓긴 어렵지만, 체감상으론 지금 각 회사가 내놓는 가벼운 무료 등급(GPT-4o mini나 제미나이 플래시 같은) 근처까지 올라오는 수준입니다.
반면 요즘 최상급 카드인 5090 한 장(가격만 700만원대)이면 카드를 나눌 필요 없이 비슷한 크기의 모델을 훨씬 빠르게 돌릴 수 있습니다. 제가 쓰는 두 장짜리 조합은 그보다 훨씬 저렴하게 비슷한 용량대에 도달하는 절충안인 셈입니다.
자연스러운 질문이 하나 생깁니다 — 둘 중 어느 쪽으로 실제 매매를 굴리면 돈을 더 벌까? 이걸 제대로 재보려고 별도의 시뮬레이터를 하나 만들었습니다.
공정하게 붙이려면
두 모델을 비교할 때 가장 쉬운 실수는, 조건이 조금씩 다른 상태로 붙여놓고 결과 차이를 모델 탓으로 돌리는 겁니다.
그래서 이 시뮬레이터는 "짝지어 비교(paired)"를 원칙으로 삼았습니다. 같은 날짜, 같은 입력, 같은 매매 규칙을 두고 딱 모델 하나만 바꿔서 두 포트폴리오를 나란히 굴립니다.
그러면 최종적으로 남는 수익 차이는 온전히 "모델 차이"로만 해석할 수 있습니다. 적어도 이론상으로는요.
그런데 벽에 부딪혔다
막상 돌려보니 예상치 못한 벽이 있었습니다. 두 모델의 수익 차이가 있는지 없는지를 애초에 잴 수가 없다는 것이었습니다.
이유는 좀 허탈합니다. 주식은 정수 단위로만 살 수 있고, 포트폴리오가 몇 종목 안 되면 "한 주 더 사느냐 마느냐"가 만드는 오차가 두 모델의 실제 실력 차이보다 훨씬 큽니다.
여기에 시장 자체의 출렁임까지 얹히면, 신호(모델 차이)는 소음에 완전히 파묻힙니다.
얼마나 파묻히냐면, 이 차이를 통계적으로 자신 있게 가려내려면 수만 거래일 어치의 데이터가 필요하다는 계산이 나왔습니다. 몇 년을 모아도 근처에 못 가는 양입니다.
그러니까 이건 "두 모델이 똑같다"가 아닙니다. "제가 평생 모을 수 있는 데이터로는 차이를 잴 수 없다"는, 조금 다른 종류의 결론입니다.
표본을 못 늘리면, 재는 방법을 바꾼다
여기서 그냥 포기할 수도 있었지만, 접근을 바꿔봤습니다.
데이터를 더 못 모으는 대신, 같은 질문을 서로 다른 방법으로 여러 번 재보는 겁니다. 방법들이 서로 다른 각도에서 같은 답으로 모이면(수렴하면) 믿을 만하고, 흩어지면(발산하면) 그 자체가 진단이 됩니다.
눈금자도 하나 만들었습니다. 아무 정보 없이 종목을 무작위로 고르게 했을 때 나오는 수익의 출렁임을 재두고, 그걸 "0점 기준선"으로 삼았습니다. 모델 차이가 이 무작위 출렁임보다 작으면, 그건 사실상 아무것도 아니라는 뜻이니까요.
이렇게 서로 독립적인 방법을 몇 가지 돌렸습니다. 결과는 셋 다 같은 곳으로 모였습니다.
모델 선택은 수익을 좌우하는 여러 손잡이 중에서 아주 작은 손잡이였습니다. 무작위로 고른 것과 구분이 안 될 정도로요.
비교 기준마저 함정이었다
측정하면서 하나 더 배운 게 있습니다. 무엇과 비교하느냐를 잘못 고르면, 재기도 전에 답이 틀어진다는 것이었습니다.
처음엔 시장 지수를 "이겼나 졌나"의 기준선으로 삼으려 했습니다. 그런데 우리 시장 지수는 몇몇 초대형 종목이 절반 넘게 좌우합니다.
그걸 기준으로 삼으면 "내 전략이 잘했나"가 아니라 "그 몇 종목이 그날 어땠나"를 재는 착시가 생깁니다. 그래서 기준을 모든 종목을 똑같은 비중으로 담은 가상 포트폴리오로 바꿨습니다.
진짜로 결과를 가른 것
그럼 뭐가 결과를 크게 좌우했을까요. 뜻밖에도 모델이 아니라 안전장치였습니다.
시뮬레이션 기간에 시장이 크게 폭락한 구간이 있었는데, 이때 손실을 막아주는 차단·중단 장치(가격이 특정 폭 이상 무너지면 매매를 멈추는 종류)가 방어한 폭이, 두 모델의 수익 차이보다 몇 배는 컸습니다.
똑똑한 두뇌를 고르는 문제라고 생각하고 시작했는데, 실제로 돈을 지킨 건 두뇌가 아니라 "위험할 때 멈추는 반사신경"이었던 셈입니다.
그럼 돈은 대체 어디 있나
이 지점에서 질문 자체를 다시 세우게 됐습니다. "수익을 더 내려면 뭘 해야 하나"를요.
정리해보니 실제로 손에 쥐는 수익은 대략 이렇게 나뉩니다 — 원래 기대할 수 있는 수익에, 그걸 실제로 얼마나 담아냈는지(캡처율)를 곱하고, 중간에 새는 돈과 사고로 잃는 돈을 뺀 것입니다.
여기서 중요한 건, 맨 앞의 "기대 수익"은 제가 억지로 끌어올릴 수 있는 값이 아니라는 겁니다. 더 똑똑한 모델을 고른다고 이 천장이 올라가지 않는다는 걸, 위의 "못 잰다"가 이미 보여줬습니다.
그러면 제가 실제로 손댈 수 있는 건 나머지뿐입니다 — 이미 나온 기대 수익을 새지 않게 온전히 담아내는 것, 그리고 폭락 때 크게 잃지 않는 것.
현금이 놀거나, 사고파는 데 드는 비용이나, 주문이 원하는 가격에서 미끄러지는 것 같은 "새는 돈"을 줄이는 일. 그리고 앞서 말한 안전장치로 큰 손실을 막는 일. 결국 돈은 더 좋은 두뇌가 아니라 여기에 있었습니다.
그래서 결정의 축을 옮겼다
수익으로 두 모델을 못 가른다면, 모델 선택의 근거를 아예 다른 곳으로 옮기는 게 맞습니다.
수익이 사실상 비슷하다면 남는 기준은 운영 현실입니다 — 무료냐 유료냐, 응답이 빠르냐 느리냐, 사고가 났을 때 견디기 쉬우냐, 나중에 똑같이 재현할 수 있느냐.
이건 시뮬레이션 없이도 답이 어느 정도 정해져 있는 질문입니다. 공짜로 돌아가고, 외부 장애에 안 흔들리고, 언제든 똑같이 다시 돌릴 수 있는 쪽이 유리하니까요.
시뮬레이터의 역할도 바뀌었다
원래 이 시뮬레이터는 "어느 모델이 이겼나"를 가리는 점수판이 될 예정이었습니다.
그런데 그 점수 자체가 못 재는 숫자라는 게 드러나면서, 역할이 바뀌었습니다. 지금은 재앙 감지기에 가깝습니다.
포트폴리오를 실제로 굴렸을 때 현금 계산이 안 맞거나, 멈춰야 할 때 안 멈추거나, 같은 걸 두 번 사버리는 것 같은 집행 단계의 사고를 미리 잡아내는 용도입니다. 실제 돈을 넣기 전에 이런 함정을 걸러내는 게, 못 재는 수익 숫자보다 훨씬 값진 산출물이었습니다.
여기서 얻은 "돈이 새는 곳을 감시하자"는 교훈은, 매일 조용히 돌아가는 작은 계기들로 이어졌습니다. 실제 주문은 하나도 안 내고, 새는 돈이 없는지·놓치는 수익이 없는지만 그림자처럼 재서 기록해두는 장치들입니다.
이 시뮬레이터가 서 있는 자리
이 도구는 퀀트봇 전체 구조(새 창) 안에서, 실제 돈을 넣기 직전 단계를 담당합니다.
매매 시점의 체결 가격은 실제로 수집해둔 분 단위 시세로 재현합니다. 이 시세 데이터는 별도의 데이터 아카이브 프로젝트(새 창)에서 모아둔 걸 가져다 씁니다.
코드는 굳이 별도 저장소로 떼어내지 않고 본체 안에 뒀습니다. 입력이 전부 본체에 있어서, 분리하면 오히려 여기저기서 끌어오는 번거로움만 늘기 때문입니다. 혼자 하는 프로젝트에서 과한 분리는 정리가 아니라 빚이 됩니다.
못 잰다는 것도 결론이다
돌이켜보면 이 프로젝트의 진짜 성과는 어떤 화려한 수익 숫자가 아니라, "이 질문은 이 방법으로는 답이 안 나온다"는 걸 정직하게 확인한 것이었습니다.
처음엔 김이 좀 샜습니다. 애써 만든 시뮬레이터가 정작 원래 물어보려던 걸 못 재준다니까요.
그런데 생각해보면, "못 잰다"를 인정하지 않고 억지로 숫자 하나를 뽑아 "이 모델이 이겼다"고 우겼다면 그게 더 위험했을 겁니다. 소음을 실력으로 착각하는 거니까요.
가끔은 "더 많은 데이터를 모으면 알 수 있다"가 답이 아니라, "이건 원래 못 재는 종류의 차이다"가 답일 때가 있습니다. 그리고 그 답은, 엉뚱한 데서 두뇌를 갈아끼우느라 쓸 시간을 진짜 돈이 있는 곳(새는 걸 막고, 크게 잃지 않는 것)으로 돌려줬습니다. 그걸 받아들이는 것도 하나의 결론이라고, 이번에 배웠습니다.
'AI > Architecture' 카테고리의 다른 글
| AI 추천 파이프라인 - 세 모델이 합의로 판단하는 방법 (0) | 2026.07.27 |
|---|---|
| 5억짜리 모의투자 계좌로, 완전자동매매를 먼저 돌려보기로 했다 (0) | 2026.07.23 |
| 퀀트 투자 자동매매 시스템 - 실전 계좌 적용편 (0) | 2026.07.23 |
| 아무도 안 보고 있으면 소용없다 — 네트워크 감시 데몬을 만든 이유 (0) | 2026.07.18 |
| 소멸하는 데이터들 — 사이드 프로젝트가 하나에서 셋으로 늘었다 (0) | 2026.07.12 |