AI 에이전트로 시장을 분석한다는 것 / 5
market-analyst — 고르는 데서 새어 나갔다
관찰 목록은 벌고 있었다. 테크는 더. 그런데 그 목록에서 LLM이 골라 담은 포트폴리오는 지수와 똑같았다. 고르는 단계에서 무엇이 새어 나갔는지에 대한 기록
목차
1편에 가설 하나를 적어뒀다.
정량 지표는 후보를 거른다. 정성적 추론이 그 후보에 서사를 입힌다. 알파는 후보가 아니라 서사에서 나온다는 게 지금의 가설이다.
이 글은 그 가설로 실제 포트폴리오를 굴렸던 석 달, 그리고 그 결과가 말해준 것에 대한 기록이다.
목록은 벌고 있었다
Phase 2에 들어선 종목을 전부 담아두는 관찰 목록이 있다. 매매가 아니라 관찰이다. 들어올 때의 가격을 박제해두고, Phase 2를 이탈하면 그때 가격으로 닫는다. 몇 달 쌓이자 "Phase 2에 들어선 종목을 들고 있었다면 어땠을까"에 대한 답이 보이기 시작했다.
7월 말 기준으로 다시 집계해보면, 청산된 것까지 포함해 5,489건이었다. 승률은 52%. 절반 가까이는 손해였다는 뜻이다. 중앙값은 +0.4%로 거의 본전이었다. 그런데 평균은 +18.2%였다.
추세추종의 전형적인 모양이다. 대부분은 본전 근처에서 끝나고, 소수의 큰 승자가 전체를 끌어올린다. 승률이 낮은 건 처음부터 알고 있었다. 중요한 건 잃을 때 작게 잃고 벌 때 크게 버느냐였고, 그때 데이터는 그렇다고 말하고 있었다.
섹터로 나누면 차이가 더 컸다. Technology 602건의 평균은 +38.0%, 나머지는 +15.7%였다. 테크가 두 배 넘게 좋았다.
다 살 수는 없다
문제는 그다음이었다. 7월 말 기준으로 관찰 목록에 동시에 올라 있던 종목이 2,475개였다. 이걸 전부 사는 포트폴리오는 없다.
평균이 좋다는 건 전부를 같은 비중으로 들고 있을 때의 이야기다. 실제 돈은 그중 몇 개에만 들어간다. 그리고 몇 개를 고르느냐에 따라, 내가 그 평균의 어느 쪽에 서게 될지가 정해진다. 승률이 반반이고 중앙값이 본전인 목록에서 아무거나 집으면 본전을 집을 확률이 높다. 평균을 만든 건 소수의 큰 승자였으니까.
그래서 고르는 일을 LLM에게 맡겼다. 1편의 가설 그대로였다. 후보는 정량 지표가 거르고, 서사는 LLM이 읽는다.
LLM에게 고르게 했다
매주 한 번, 에이전트가 관찰 목록의 상위 등급 후보들을 시장 상황, 진행 중인 명제들과 함께 보고 편입할 종목을 정했다. 고른 종목은 정량 조건을 한 번 더 통과해야 실제로 들어갔다. 비중과 청산은 규칙이 맡았다. LLM에게 맡긴 건 관찰 목록 안에서 고르는 일, 그것 하나였다.
처음 몇 주는 빈 포트폴리오를 채웠다. 종목당 비중이 커서 일곱 종목 안팎이면 현금이 다 찼고, 5월 말부터는 한 달 넘게 꽉 찬 상태였다. 그때부터는 무언가 청산돼 자리가 날 때마다 다음 종목을 골랐다.
편입 사유는 매주 리포트에 남았다. 첫 주 세 종목은 사유 원문이 남아 있지 않지만, 나머지를 다시 읽어보니 고르는 방식에 일관된 모양이 있었다. 사유가 남아 있는 열한 건 중 열 건이 그 주에 강해진 섹터나 업종을 근거로 들었다. 에너지가 섹터 1위로 올라선 주엔 에너지 종목을, 건설 업종이 급등한 주엔 건설사를, 귀금속 업종이 1위로 올라선 주엔 광산주를, 전쟁 위험 보험 서사가 활발하던 주엔 보험사 두 곳을 담았다. 서사나 명제는 열한 건 중 일곱 건에 함께 붙어 있었다.
에이전트는 매주 그 주의 흐름을 따라 골랐다.
석 달 뒤, 지수와 똑같았다
4월 17일에 시작해 석 달을 채운 7월 28일까지, 69거래일. 이 포트폴리오는 +4.14%였다. 같은 기간 S&P 500은 +4.25%, QQQ는 +4.11%였다.
손해를 본 건 아니다. 그런데 이 결과를 얻으려고 LLM을 쓸 이유는 없었다. 지수는 클릭 한 번으로 산다.
그리고 그 +4.14%도 사실상 한 종목이었다. DELL. 첫 주에 담은 세 종목 중 하나였고, 7월 말까지 두 배 가까이 올랐다. 진입 비중에 수익률을 곱해 대략의 기여를 따져보면 +8.5%p. 포트폴리오 전체 수익보다 컸다.
고른 종목은 몇 등이었나
포트폴리오 수익률에는 고르는 일 말고도 많은 게 섞인다. 비중, 청산 시점, 그 석 달의 장세. LLM에게 맡긴 건 고르는 일 하나였으니, 그것만 따로 떼어봐야 했다.
그래서 이렇게 쟀다. LLM이 종목을 고른 날마다, 그날 관찰 목록에 있던 후보들을 전부 꺼낸다. 청산은 무시하고, 고른 날부터 같은 기간 동안 들고 있었다고 치고 수익률을 비교한다. 그러면 LLM이 고른 종목이 그날 후보 중 몇 등이었는지가 나온다. 백분위로 50이면 아무거나 집은 것과 같고, 100이면 그날 후보 중 1등이다.
7월 28일까지 들고 있었다고 보면, 열네 종목의 평균 백분위는 정확히 50이었다. 열넷 중 일곱이 후보 중앙값보다 나았고, 일곱이 못했다. 무작위로 고른 것과 같았다.
고른 날마다 7월 28일까지 남은 기간이 달라서, 기간을 30거래일로 맞추고 에이전트가 주로 들여다보던 상위 등급 후보들과만 비교해봤다. 그러자 모양이 갈렸다. 첫 주에 담은 세 종목은 평균 백분위 91로 최상위였고, DELL은 1등이었다. 반면 그 뒤로 매주 흐름을 따라 고른 열한 종목은 평균 33이었다. 그 목록에서 아무거나 집었어도 더 나았을 수준이다.
LLM이 고른 종목은 그날 후보들 사이에서 평균적으로 딱 가운데였다. 첫 주의 세 종목은 최상위였고, 그 뒤 매주 뜨는 섹터를 따라 고른 열한 종목은 상위 등급 후보들 사이에서 하위권이었다.
1편의 가설로 돌아가면, 알파는 서사에서 나온다고 했다. 적어도 이 석 달 동안, 그 주의 흐름과 서사를 근거로 고른 종목들은 고를 수 있었던 후보들의 평균을 넘지 못했다.
돌아보면 판단 기준부터 잘못 잡고 있었다. 지수와 비교하면 이 포트폴리오는 괜찮아 보였다. 손해는 없었으니까. 그런데 고르는 단계가 존재하는 이유는 시장을 이기는 게 아니라, 고를 수 있었던 목록보다 나은 것을 고르는 데 있다.
선별의 비교 대상은 시장이 아니라, 고를 수 있었던 목록이다.
물론 열네 종목, 석 달이다. 이걸로 LLM이 고르지 못한다고 판정할 수는 없다. 첫 주에는 잘 골랐다. 이번 석 달이 보여준 건, 그 뒤 매주 흐름을 따라 고른 종목들에서 성과가 새어 나갔다는 것까지다.
끌고 갈 종목은 미리 보이는가
그래도 실패의 모양은 분명했다. Phase 2 종목들 안에서도 수익은 소수가 만든다. 목록이 그랬고, 내 포트폴리오도 그랬다. 결국 문제는 그 소수를 미리 알아보는 일이었다. 매주 그 주의 흐름을 따라 고르는 방식으로는 그걸 하지 못했다.
그래서 질문을 바꿨다. 나중에 혼자 포트폴리오를 끌고 가는 종목은 사기 전에 어떤 모습이었나. 그 주의 흐름이나 서사가 아니라 숫자로 잴 수 있는 특징, 팩터로 그 소수를 미리 가려낼 수 있을까.
이건 과거 데이터에 물어볼 수 있는 질문이었다. 지난 몇 년 동안 Phase 2에 들어선 종목들을 어떤 조건으로 걸러 담았다면 어땠을지, 그 조건으로 담은 종목 묶음을 과거 위에서 통째로 굴려보면 된다.
다음 편은 그 백테스트 이야기다. 어떤 팩터가 포트폴리오를 끌고 가는 종목을 가려냈고, 어떤 건 착각이었는지.