본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 21. 04:16

어떤 LLM이 최고의 주식 선정가일까? 이를 알아내기 위해 벤치마크를 구축했습니다.

요약

불확실한 시장 상황에서 LLM의 의사결정 능력을 평가하기 위해 구축된 새로운 벤치마크 '1rok'를 소개합니다. 7개의 프런티어 모델이 동일한 도구와 프롬프트를 사용하여 가상 자본으로 주식을 선정하며, 에이전트 기반의 분석 및 포트폴리오 구성 프로세스를 통해 실제 수익률을 측정합니다.

핵심 포인트

  • 7개의 프런티어 LLM(OpenAI, Google, xAI 등)을 대상으로 한 주식 선정 벤치마크 구축
  • 에이전트가 직접 계산하는 대신 전용 도구를 사용하여 계산 오류를 방지하는 구조 채택
  • 분석가 에이전트, 오케스트레이터, 컨스트럭터로 구성된 다단계 에이전트 워크플로우 활용
  • 도구 레지스트리(Tool Registry)를 통해 시장 데이터, 웹 검색 등 32개의 도구에 접근하는 에이전트 설계

격주로 코딩, 수학 또는 추론에 관한 새로운 GPT-vs-Claude-vs-Gemini 벤치마크가 등장합니다. 하지만 그 중 어떤 것도 모델이 불확실성 속에서 실제로 결정을 내릴 수 있는지, 즉 정답이 학습 데이터에 없고 결과가 2주 후에 손익(P&L)으로 나타나는 상황에서 말입니다. 그래서 저는 다른 종류의 평가(eval)를 구축했습니다. 7개의 프런티어(frontier) LLM, 각각 10만 달러의 가상 자본, 동일한 도구, 동일한 프롬프트, 동일한 데이터. 매주 월요일 그들은 주식을 선정합니다. 시장이 그들을 평가합니다. 이 프로젝트는 1rok입니다. 라이브 리더보드: investingbench.vercel.app. 시계는 2026년 1월 20일에 시작되었습니다. 참가자는 GPT-5.5 (OpenAI), Gemini 3.1 Pro Preview (Google), Grok 4.3 (xAI), DeepSeek V4 Pro, GLM-5.1 (Zhipu), Kimi K2.6 (Moonshot), MiniMax M2.7입니다. 각 모델은 자신만의 격리된 Alpaca 가상 계좌를 가집니다. 동일한 도구 레지스트리, 동일한 프롬프트, 동일한 스크리너 출력을 사용합니다. LLM만이 유일한 변수입니다.

이것이 왜 헤지펀드 홍보가 아닌지에 대해 미리 밝혀두고 싶습니다. 저는 매주 LLM이 주도하는 포트폴리오가 S&P를 이길 것이라고 생각하지 않습니다. 만약 그럴 수 있다면, 헤지펀드들이 이미 그렇게 하고 있을 것입니다. 일부는 하고 있지만, 지금까지의 결과는 엇갈리고 있습니다. 1rok의 목적은 알파(alpha)를 찾는 것이 아닙니다.

여러 관점을 통과한 주식들이 우선순위를 얻습니다. 6명의 분석가(analysts)가 후보 목록을 병렬로 검토합니다. 각 분석가는 좁은 관점에서 모든 주식에 대해 0-100점 사이의 점수를 매깁니다. 오케스트레이터(Orchestrator)는 이 6개의 점수를 하나의 숫자로 합성하고, 거시 경제 체제(macro regime)를 조정치로 적용하여 A/B/C 등급을 부여합니다. 컨스트럭터(Constructor)는 등급을 거래 주문으로 변환합니다. 컨스트럭터는 모든 포트폴리오 계산을 전용 계산 도구에 위임하는데, 이는 스스로 비중 계산(sizing math)을 시도하는 에이전트(agents)들이 약 3분의 1의 확률로 계산 오류를 범하기 때문입니다. Alpaca가 실행합니다. 먼저 현금을 확보하기 위해 매도하고, 그 다음 매수합니다. 합성 공식은 한 곳에 존재하며 다음과 같습니다: composite = fundamental * 0.20 // 비즈니스 품질 + valuation * 0.20 // 가격 규율 + ( 100 - risk ) * 0.20 // 자본 보존 (역산) + technical * 0.15 + catalyst * 0.15 + sentiment * 0.10. 리스크(Risk)를 역산하는 것은 의도적인 것입니다. 꼬리 리스크(tail risk)가 높은 고확신 매수 종목은 비중이 커지는 것이 아니라 작아져야 하기 때문입니다. 컨스트럭터는 단일 포지션을 40%로 제한하고, 최대 8개의 종목을 보유하며, 현금 비중이 15%를 넘지 않도록 합니다.

내부 작동 원리: 에이전트가 실제로 데이터를 가져오는 방법. 각 파이프라인 실행은 자체적인 도구 레지스트리(tool registry)를 생성합니다. 시장 개요, 주식 데이터, 스크리닝, 기술적 지표, 옵션, 실적, 포트폴리오, 웹 검색 등 8개 그룹에 걸쳐 약 32개의 도구가 있습니다. 에이전트는 listTools를 호출하여 자신의 할당 영역을 확인하고(매크로 에이전트는 리스크 에이전트와 다른 도구를 받습니다), 그 다음 callTool(name, args)를 호출하면 Alpaca, Yahoo Finance, FRED 또는 Tavily와 통신하는 방법을 아는 핸들러(handler)로부터 타입이 지정된 JSON을 반환받습니다. 재시도(Retries), 속도 제한(rate limits), 서킷 브레이킹(circuit breaking)은 핸들러 계층에 존재하므로, 에이전트가 사고 도중에 429 오류나 불안정한 소켓(flaky socket) 문제를 겪을 필요가 없습니다.

두 개의 명령, 결코 하나가 아님. run은 포트폴리오 구성 JSON 아티팩트(artifact)를 생성합니다. execute는 해당 아티팩트를 읽어 주문을 넣습니다. 이 둘은 항상 분리되어 있습니다.
bun run 1rok -- run --model gpt-5.5
bun run 1rok -- execute ./results/openai/gpt-5.5/portfolio-2026-04-16.json
run은 브로커에 절대 손을 대지 않습니다. --live가 실제 주문을 넣을 수 있는 유일한 경로이며, 이 옵션이 없으면 모든 것은 paper-api.alpaca.markets로 전송됩니다.

이는 실수로 거래를 실행하지 않고도 지난주 데이터를 사용하여 어떤 모델이든 다시 실행할 수 있음을 의미하며, 단 하나의 주문이 시스템을 벗어나기 전에 모델이 정확히 무엇을 결정했는지 감사(Audit)할 수 있음을 의미합니다. 제가 알아내고자 하는 것들

제가 지켜보고 있는 미해결 질문들:

  • 어떤 모델이 다른 모델을 지속적으로 압도하는가, 아니면 1년이라는 기간 내에서는 그저 노이즈(Noise)에 불과한가?
  • 저렴한 모델들(Kimi, DeepSeek, GLM)은 성능이 떨어지는가, 아니면 단지 더 신중하게 거래하는가?
  • "추론(Reasoning)" 모델들이 다단계 금융 결정에 대해 실제로 더 나은 추론을 수행하는가, 아니면 단지 동일한 결론에 도달하기 위해 더 많은 토큰(Token)을 소비할 뿐인가?
  • 어떤 모델이 자산 감소(Drawdown) 상황에서 패닉에 빠지는가?
  • 어떤 모델이 하지 말아야 할 때 무작위로 특정 주식을 대량 매수하는가?

아직 답을 가지고 있지 않습니다. 이 실험 전체의 목적은 아직 답을 가지고 있지 않다는 데 있습니다.

참여 방법

  • 관찰하기: 실시간 리더보드(Leaderboard), 에이전트 추적(Agent traces), 그리고 거래별 추론(Per-trade reasoning)을 확인하려면 investingbench.vercel.app을 방문하세요.
  • 직접 실행하기: github.com/achaljhawar/1rok 을 클론(Clone)하고, 보유하고 있는 프로바이더 키(6개 중 아무거나 하나면 충분합니다)를 설정한 뒤, bun run 1rok --run --model <id>를 실행하세요.
  • 마일스톤을 확인하고 싶다면 리포지토리(Repo)를 스타(Star) 해주세요. 리더보드의 격차가 벌어짐에 따라 발견 사항들을 정리하여 작성하겠습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0