4월부터 단순한 실험을 하나 돌리고 있다. Claude, ChatGPT, Gemma 계열 봇들에게 매일 같은 짧은 프롬프트를 주고, 주식과 ETF 몇 개가 오를지 내릴지 답하게 한 다음, 실제 가격으로 전부 채점한다. 잘 나온 것만 골라내지 않고, 지운 예측도 없다. 모든 예측은 제출 시각과 함께 공개 리더보드에 올라가고, 한번 채점되면 수정할 수 없다.
넉 달이 지났고, 세 모델이 받은 판정은 합쳐서 1,251건이다. 불편한 요약부터 하면, 이 통제군에서는 매일 “상승”만 외치는 베이스라인 봇을 이긴 모델 라인이 하나도 없다.
실험 구성
벤치마크의 통제된 부분은 일부러 밋밋하게 만든 프롬프트 하나를 공유하는 봇 세 쌍이다. 자산 이름과 최근 종가를 주고, 상승인지 하락인지, 근거 한 문장과 함께 답하라고만 한다. 지표도, 뉴스도, 튜닝도 없다. 세 라인에서 바뀐 것은 모델뿐이다.
claude_simple_daily/claude_simple_weekly, Claude Opus 4.8 기반 (Claude 데스크톱 앱으로 구동)chatgpt54_daily/chatgpt54_weekly, GPT-5.4 기반 (OpenAI API로 구동)gemma26b_daily/gemma26b_weekly, 내 노트북에서 도는 양자화된 Gemma 26B. API 없이 전부 로컬이다
daily 봇은 다음 종가를, weekly 봇은 5거래일 뒤를 맞힌다. 대상은 VOO, QQQ 같은 미국 ETF, 코스피 200, 금, 비트코인, 그리고 돌아가며 고르는 개별 종목들이다. 채점은 배당과 분할을 반영한 수정 종가(adjusted close) 기준 총수익률로 하고, ±0.05%보다 작은 움직임은 판정 불가로 보고 제외한다. 전체 규칙은 방법론 페이지에 있다.
먼저 봐야 할 불편한 결과
2026년 4월 17일부터 8월 19일까지, 전체 기간 적중률이다.
| 봇 | 판정 수 | 적중률 | 같은 예측 집합 위 “항상 상승” |
|---|---|---|---|
claude_simple_daily | 359 | 53.5% | 53.2% |
claude_simple_weekly | 73 | 56.2% | 61.6% |
chatgpt54_daily | 300 | 52.0% | 52.3% |
chatgpt54_weekly | 66 | 43.9% | 48.5% |
gemma26b_daily | 372 | 49.5% | 52.7% |
gemma26b_weekly | 81 | 48.1% | 56.8% |
내가 가장 중요하게 보는 것은 마지막 열이다. 각 봇이 실제로 한 예측, 그러니까 같은 자산과 같은 날짜 위에서, “무조건 상승”이라고만 답하는 단순한 규칙이 몇 점을 받았을지를 계산한 값이다. 이렇게 짝지어 비교하면 “두 봇이 서로 다른 장을 만났다”는 흔한 변명이 사라진다.
모델 가족 단위로 묶으면 이렇다. Claude는 432건 중 53.9%를 맞혔는데, 같은 예측 집합 위의 항상 상승은 54.6%였다. ChatGPT는 50.5% 대 51.6%, Gemma는 49.2% 대 53.4%. 세 가족 모두, 차트도 안 보고 생각도 안 하고 의심도 없는 규칙과 같거나 그 아래에 있다. 이 격차들을 대략적인 단측 검정(차이가 우연한 흔들림으로 보기 어려운지 한 방향으로만 확인하는 검사)으로 재 보면, Claude와 ChatGPT의 격차는 통계적 잡음 수준이다(p ≈ 0.39와 0.34). 유일하게 검정에 걸리는 것은 Gemma인데, 하필 나쁜 쪽이다. 자기 예측 집합이 항상 상승에게 쥐여 준 53.4%보다 의미 있게 낮은 49.2%로, p ≈ 0.04쯤 된다. 그래서 이번 결과를 조심스럽게 요약하면 이렇다. 넉 달 동안 천 건 넘게 시켜 본 결과, 밋밋한 프롬프트를 받은 모델은 잘해야 약간 위쪽으로 기운 동전과 통계적으로 구분되지 않았고, 못하면 아무 생각 안 하는 것보다 조금 나빴다.
관측값만 놓고 보면 Claude, ChatGPT, Gemma 순서가 나온다. 다만 차이가 위아래로 4.7%p 정도라서, 아직 이걸로 모델 선택을 논하고 싶지는 않다.
“항상 상승”이 이렇게 이기기 어려운 이유
주가지수는 길게 보면 우상향하는 경향이 있어서, 매일 “상승”만 외치는 봇은 애초에 유리한 주사위를 쥐고 시작한다. 같은 넉 달 창에서 항상 상승은 VOO 예측(판정 450건)의 62.7%, QQQ(456건)의 54.8%, 코스피 200(432건)의 52.3%를 맞혔다. 이 기간의 예외는 비트코인이어서, 654건 중 46.5%에 그쳤다.
여기에 세상의 모든 “우리 AI는 적중률 60%로 주가를 맞힙니다”류 주장의 함정이 있다. 짝지은 베이스라인 없는 적중률은, 그 봇이 어떤 장세에 어떤 자산을 예측했는지를 주로 측정한다. 우리 리더보드가 적중률로 순위를 매기지 않는 이유이기도 하다. 대신 각 예측을 실제 가격이 움직인 폭으로 가중하고, 기록이 짧을수록 0 쪽으로 보수적으로 눌러 주는 연율화 수익률로 순위를 매긴다. 자세한 정의는 방법론에 있다.
실제로 차이를 만든 것
6월부터는 모델을 실험 대상으로 두는 대신 프롬프트를 실험 대상으로 바꿨다. 같은 모델에게 더 나은 재료와 회차별로 고친 지시를 줬더니 그림이 달라졌다. 아래 라인들은 위의 통제된 트리오에 속하지 않는데, 그게 바로 요점이다. 변수가 모델이 아니라 입력 파이프라인이 됐다.
| 봇 | 판정 수 | 적중률 | 같은 예측 집합 위 “항상 상승” |
|---|---|---|---|
claude_main_daily (뉴스 + 개선 프롬프트) | 219 | 56.2% | 51.1% |
gemma_main_daily (뉴스 + 개선 프롬프트) | 237 | 51.5% | 49.8% |
gemma_trending_daily (매일 화제 종목 1개 선택) | 184 | 54.3% | 46.7% |
gemma_chart_daily (차트 피처만) | 127 | 45.7% | 58.3% |
claude_combo_daily (도구 파이프라인, 초기 표본) | 37 | 67.6% | 67.6% |
rule_sma_daily (LLM 없음, SMA/RSI 규칙) | 50 | 46.0% | 54.0% |
눈에 띄는 행이 둘 있다. 뉴스를 읽고 회차별로 프롬프트를 고친 Claude 라인은 짝지은 항상 상승보다 5.1%p 위에 있다(대략적인 단측 검정으로 p ≈ 0.07, 시사적이지만 결정적이지는 않다). 그리고 매일 뉴스로 움직이는 종목 하나를 골라 예측하는 트렌딩 봇은 짝지은 베이스라인보다 7.6%p 위다(p ≈ 0.02). 트렌딩 봇은 리더보드의 AI 봇 중 유일하게 연율화 수익률의 95% 신뢰구간이 통째로 0 위에 있는 봇이기도 하다. 연 +179%, 구간은 +55%에서 +498%. 넓지만 0에 닿지 않는다. 이 우위의 상당 부분은 하루에 수십 퍼센트씩 움직인 몇 건의 방향을 잡은 데서 왔는데, 그게 바로 움직임 폭 가중 채점이 보상하도록 설계된 것이고, 적중률만 보면 가려지는 부분이다.
차트 봇은 반대 방향의 반면교사다. 차트 피처만 받아 든 이 봇은 짝지은 베이스라인보다 12.6%p 아래로 갔다. 동전 던지기는 절대 못 하는 방식으로, 자신 있게 틀린 것이다. 7월 말에 이 봇을 재설계했고, 같은 프롬프트 처방이 Claude에게는 통하고 Gemma에게는 독이 됐던 사례와 함께 예측 일지에 정리해 두었다.
돋보이는 두 라인에 대한 정직한 단서 하나. 보드에 봇이 열두 개쯤 있으면 p ≈ 0.02짜리 결과 하나 정도는 다중 비교가 공짜로 쥐여 주는 수준이다. 트렌딩 봇의 우위는 증명됐다기보다 유망하다고 읽는다. 두 라인 모두 계속 돌고 있으니, 어느 쪽이든 숫자가 결론을 내 줄 것이다.
단서 조항, 전부
- 장세가 하나뿐이다. 이 기간 미국 주식은 대체로 상승장이었고 비트코인은 내리막이었다. 길게 이어지는 하락장에서는 위의 모든 숫자가 다르게 나올 수 있다.
- 시작일이 조금씩 다르다. Claude 쌍은 4월 17일, Gemma 쌍은 4월 23일, ChatGPT 쌍은 5월 1일 시작이다. 짝지은 항상 상승 열은 봇별로 계산하므로 영향이 없지만, 가족끼리의 직접 비교에는 작은 기간 불일치가 남는다.
- ChatGPT 쌍은 8월 초에 은퇴했다(마지막 판정 예측이 7월 27일과 8월 1일). 그래서 창이 3주쯤 짧다.
- 유의성 검정은 짝지은 베이스라인을 고정값으로 둔 대략적인 정규 근사이지, 엄밀한 쌍체 검정이 아니다. 증명이 아니라 과해석을 막는 필터로 쓴다.
- 표본이 작은 신생 봇들(도구 파이프라인 봇 37건, 규칙 봇 50건)은 완결성을 위해 실었을 뿐, 결론용이 아니다.
직접 검증하는 방법
이 글의 모든 숫자는 공개 페이지에서 다시 계산할 수 있다. 각 봇의 프로필에는 지금까지 한 모든 예측이 제출 시각, 진입·청산 가격, 건별 결과와 함께 나온다. 예를 들어 @claude_simple_daily나 @gemma_trending_daily를 보면 된다. 예측은 제출 시점에 잠기고 채점 후에는 수정할 수 없다. 채점 공식과 판정 불가 규칙, 신뢰구간 정의는 방법론 페이지에 있고, 리더보드는 실시간이다.
실험은 계속 돌아가고, 봇들은 거래일마다 채점을 받는다. 그림이 바뀌면 내가 말하기 전에 숫자가 먼저 말해 줄 것이다.