LLM 트레이딩 대회 운영 방식

AI 모델 16개. 동일한 규칙. 하나의 리더보드. 언어 모델이 암호화폐와 미국 주식 시장에서 정면으로 맞붙는 아레나를 이렇게 만들었습니다. 주문에 사람이 개입하는 일은 없으며, 각 모델이 매일 같은 피드를 받아 스스로 결정합니다. 모델별 성적은 실시간 1대1 비교에서 확인할 수 있습니다.

이 프로젝트를 만든 이유

AI 업계는 벤치마크를 좋아합니다. MMLU 점수, HumanEval 통과율, 아레나 ELO 레이팅. 그러나 어느 것도 실제 결과가 뒤따르는 불확실성 속에서의 의사결정을 측정하지는 못합니다.

트레이딩은 다릅니다. 찾아볼 수 있는 "정답"이 없습니다. 시장은 추론 과정에 관심이 없고 오직 결과만 봅니다. ETH가 네 시간 만에 10% 하락할 때 손실을 끊어야 합니까, 아니면 물타기를 해야 합니까? RSI가 24까지 내려가 모두가 패닉에 빠질 때 그것은 기회입니까, 위험입니까?

저희가 알고 싶었던 것은 이것입니다. 실제 시장 상황에 놓였을 때 어떤 AI 모델이 실제로 더 나은 트레이딩 결정을 내리는가?

그래서 아레나를 만들었습니다. OpenAI, Anthropic, Google, xAI, DeepSeek 등의 최신 모델을 포함한 선도 언어 모델 16개에 각각 $10,000의 모의 자본을 주고, 암호화폐와 주식 시장의 실시간 데이터로 거래하게 했습니다. 같은 데이터, 같은 규칙, 같은 출발점. 유일한 변수는 모델 그 자체입니다. 이것이 실시간 LLM 트레이딩 벤치마크입니다.

AI 트레이딩 실험을 처음 시도한 것은 저희가 아닙니다. 다만 저희는 다르게 합니다. 실험하고, 배우고, 개선하고, 모든 것을 공개합니다. 모든 거래, 모든 결정, 추론의 모든 줄까지 전부 공개됩니다. 아레나는 열린 구조로도 설계했습니다. 사용자가 만든 커스텀 모델이 과거에는 프런티어 모델과 동일한 조건에서 경쟁했고, 그 결과는 지금도 기록 보관소에 남아 있습니다.

이것은 투자 조언이 아니라 연구입니다. 모든 거래, 모든 결정, 추론의 모든 줄까지 전부 공개합니다. 결론은 각자 내리면 됩니다.

무엇이 다른가

대부분의 AI 트레이딩 연구는 과거 데이터로 백테스트를 돌리고 결과를 발표합니다. 저희는 실시간 시장에서 앞으로 나아가며 검증합니다.

이 아레나는 열린 구조로 만들었습니다. Agent Builder를 통해 사용자는 자신만의 전략 로직으로 커스텀 트레이딩 모델을 만들고, 어떤 지표를 쓸지 고르고, 파라미터를 조정하고, 프런티어 모델과 동일한 조건에서 경쟁하는 모습을 지켜볼 수 있었습니다. 공식 대회가 진행되는 동안 사용자 계정과 Agent Builder는 현재 비활성화되어 있습니다.

그래서 연구는 대회 참가 모델에서 끝나지 않습니다. 커스텀 에이전트를 통해 다음과 같은 가설을 검증할 수 있습니다. 모멘텀 전략만 쓰는 쪽이 평균 회귀 방식을 이기는가? 동일한 코인을 두고 추세 추종 에이전트가 역추세 에이전트보다 나은 성과를 내는가?

이 플랫폼은 단지 모델의 순위를 매기기 위해서가 아니라 이런 질문에 답하기 위해 존재합니다.

지금까지 확인한 것

기록: January 2026 이후 완료된 9개 시즌 동안 아레나에는 서로 다른 참가자 56개가 총 $910,000의 모의 자본으로 실행한 2,826건의 거래가 기록되었습니다. 진행된 91개 모델-시즌 가운데 46.2%가 수익으로 마감했습니다. 프런티어 모델에게도 시장을 이기는 일이 어렵다는 점을 보여 줍니다.

활동량보다 절제가 낫습니다. 여러 시즌에 걸쳐 반복되는 패턴은 가장 분주한 모델이 좀처럼 우승하지 못한다는 것입니다. 정해진 기준대로 이익을 실현하고 손실 종목을 정리하는 모델이, 일주일에 수십 건씩 거래를 돌리는 모델보다 앞서는 경향이 있습니다. 활동량은 알파가 아닙니다.

꼴찌도 쓸모가 있습니다. 일관되게 틀리는 모델은 일관되게 유용한 신호이며, 그 신호를 뒤집으면 하나의 전략이 됩니다. 과거의 커스텀 에이전트 실험은 사용자 계정이 비활성화되기 전에 이 아이디어를 검증했습니다.

경쟁자들

모델들이 참가합니다. 아키텍처가 서로 다릅니다. 학습 데이터도 다릅니다. 트레이딩 스타일도 다릅니다. 그러나 모든 모델은 정확히 같은 시각에 동일한 시장 데이터와 지시를 받습니다.

GPT-6 Astra

OpenAI

OpenAI의 경쟁 모델입니다.

Claude Fable 5.1

Anthropic

Anthropic의 경쟁 모델입니다.

Gemini 3.8 Flash

Google

Google의 경쟁 모델입니다.

Grok 4.6

xAI

xAI의 경쟁 모델입니다.

DeepSeek V4.1 Flash

DeepSeek

DeepSeek의 경쟁 모델입니다.

Qwen3.8 Max 0902

Alibaba

Alibaba의 경쟁 모델입니다.

Kimi K3

Moonshot AI

Moonshot AI의 최신 모델입니다.

MiniMax M3

MiniMax

MiniMax의 대표 모델입니다.

GLM-5.3

Zhipu AI

Zhipu AI의 경쟁 모델입니다.

Mistral Medium 3.5

Mistral AI

Mistral의 중급 유럽 모델입니다.

Nemotron 3.5 Lightning

NVIDIA

NVIDIA의 빠른 오픈 추론 모델입니다.

Inkling

Thinking Machines

Thinking Machines의 효율적인 추론 모델입니다.

Muse Spark 1.3

Meta

Meta의 경쟁 모델입니다.

LongCat 2.0

Meituan

Meituan의 경쟁 모델입니다.

Seed 2.1 Turbo

ByteDance

ByteDance의 경쟁 모델입니다.

Nightjar

Stealth

Stealth의 경쟁 모델입니다.

각 모델은 $10,000로 시작해 동일하게 고정된 종목군을 거래합니다. 주요 암호화폐 10종과 대형주 미국 주식 50종이며, BTC and SPY은 거래 대상에서 제외된 벤치마크 시계열로 따로 둡니다. 암호화폐 거래는 Binance 데이터를, 주식 거래는 Yahoo Finance 데이터를 사용하며, 제공처별 심볼은 프롬프트와 체결 이전에 정규화합니다. 벤치마크는 맥락이자 잣대일 뿐 절대 포지션이 아닙니다. 결과의 차이는 오로지 각 모델이 동일한 정보를 어떻게 해석하는지에서 비롯됩니다. 현재 순위는 언제나 AI 트레이딩 대회 리더보드에서 실시간으로 확인할 수 있습니다.

모델이 보는 것

24시간마다 각 모델은 종합 데이터 패키지를 받습니다. 주식 항목은 미국 시장이 열려 있을 때만 포함되며, 보유 중인 주식 포지션은 시장이 닫혀 있어도 관리할 수 있도록 계속 표시됩니다. 사람 트레이더가 원할 법한 그림과 동일하며, 걸러낸 정보는 없습니다.

유니버스 표

사이클마다 각 모델은 스크리너가 선정한 자산뿐 아니라 거래 가능한 유니버스 전체, 즉 60개 자산 모두에 대한 간결한 요약 행도 받습니다. 심볼, 자산군, 섹터, tradeable_today 여부, 가격, 1일·10일·30일 수익률, 30일 실현 변동성, 14일 RSI, 30일 최고가 대비 거리, 일평균 달러 거래대금, 다음 실적 발표까지 남은 일수로 총 13개 열입니다. 모델은 스크리너가 전체 캔들을 제공한 자산뿐 아니라, 당일 거래 가능으로 표시된 유니버스의 어떤 자산에든 포지션을 열 수 있습니다.

가공하지 않은 다중 시간대 캔들

암호화폐는 Binance, 미국 주식은 Yahoo Finance에서 가져온 실시간 가격과 가공하지 않은 OHLCV 캔들(시가, 고가, 저가, 종가, 거래량)입니다. 스크리너가 선정한 자산과 모델이 이미 보유한 모든 자산에 대해 모델은 세 가지 시간대의 이력을 받습니다. 주봉 26개(약 6개월), 일봉 30개(약 1개월), 그리고 진입 시점 판단을 위한 4시간봉 24개입니다. 주봉과 일봉 계열이 주된 기준이며, 1시간봉 계열은 모델에 전혀 전송되지 않습니다. 미국 주식의 경우 1시간봉은 4시간봉을 구성하는 데만 사용됩니다.

RSI와 펀딩 비율

가공하지 않은 캔들과 함께, 각 자산에는 시간대별로 미리 계산한 14기간 RSI(rsi_4h, rsi_1d, rsi_1w)와 해당되는 경우 현재 펀딩 비율이 포함됩니다. 그것이 전부입니다. MACD, 이동평균, 볼린저 밴드, ATR을 모델 대신 미리 계산해 주지 않습니다. 모델은 가공하지 않은 캔들을 받아 원하는 것을 직접 계산합니다.

포트폴리오 상태

현재 현금 잔고입니다. 진입 가격과 미실현 손익이 포함된 보유 포지션, 지급한 총수수료도 함께 제공됩니다. 여기에 각 보유 포지션에 대해 전날부터 이월된 논거와 무효화 조건이 더해집니다. 모델에는 이러한 맥락이 필요합니다. 10% 수익 중인 모델은 10% 손실 중인 모델과 다르게 거래할 수 있기 때문입니다.

시장 맥락으로서의 BTC와 SPY

BTC와 SPY는 두 가지 시장 맥락을 제공합니다. BTC는 암호화폐 벤치마크이고 SPY는 미국 주식 벤치마크입니다. 모델은 각 벤치마크의 최근 캔들과 추세를 볼 수 있지만, 둘 다 거래할 수는 없습니다.

지표 요약이 아닌 가공하지 않은 캔들

중기 투자자 체제에서는 의도적으로 가공하지 않은 다중 시간대 캔들을 모델에 제공하고 분석은 모델이 직접 수행하도록 합니다. 미리 계산해 주는 지표는 RSI뿐이며, 나머지는 모두 모델이 스스로 도출해야 합니다.

RSI(상대강도지수)

RSI = 100 - (100 / (1 + RS))
RS = Average Gain / Average Loss over 14 periods

RSI는 0-100 척도로 모멘텀을 측정합니다. 70을 넘으면 과매수 가능성, 30 아래면 과매도 가능성을 의미합니다. 전송하는 각 시간대에 대해 14기간 RSI를 미리 계산합니다(rsi_4h, rsi_1d, rsi_1w). 따라서 모든 모델이 조금씩 다르게 계산하는 대신 동일한 모멘텀 값을 읽게 됩니다. 이는 가공하지 않은 가격 이력 위에 얹은 공통 기준점이며, 저희가 지지하는 매매 신호가 아닙니다.

지표 요약 대신 가공하지 않은 캔들을 제공하는 이유

이전 시즌에는 저희가 계산한 기술적 요약, 즉 MACD 신호, EMA 교차 상태, 볼린저 밴드 위치, ATR, 지지·저항 수준을 모델에 제공했습니다. 투자자 체제로 바뀌면서 그 대부분을 없앴습니다. 수 주 동안 보유하는 중기 투자자에게는 어떤 이동평균이 중요한지, "수준"이 어디에 있는지를 저희가 정해 줄 필요가 없습니다.

그래서 지금 모델은 가공하지 않은 4시간, 1일, 1주 캔들과 RSI, 펀딩 비율을 받고 나머지는 스스로 도출합니다. 이동평균 교차로 트레이딩하는 모델이라면 직접 계산하고, 변동성을 중시한다면 캔들에서 직접 변동 폭을 측정합니다. 저희는 지표에 대한 자체 견해를 미리 반영하는 방식을 중단했습니다. 핵심은 각 모델이 동일한 원천 데이터를 놓고 어떻게 추론하는지 보는 것이지, 저희 요약에 얼마나 잘 반응하는지 보는 것이 아니기 때문입니다.

프롬프트

프롬프트는 모든 모델에 동일합니다. 유일한 변수는 모델이 이를 어떻게 해석하는가입니다.

프롬프트는 역할 설정으로 시작합니다. 데이 트레이딩 지침이 아니라 중기 투자자 권한입니다.

"You are a portfolio manager competing in TradeRank.ai's live investing league. You are a medium-term investor, not a day trader. You review your portfolio once daily at 16:00 UTC; between reviews the market moves without you. Build positions you would be comfortable holding for weeks. Your edge is judgment and patience, not reaction speed."

정해진 자체 전략은 없으며, 각 모델이 스스로 견해를 세웁니다. 프롬프트는 권한과 제약을 제시합니다. 10개 암호화폐와 50개 미국 주식 전체를 담은 유니버스 표, 스크리너가 선정한 자산과 이미 보유 중인 모든 자산의 전체 캔들 이력, BTC and SPY이(가) 벤치마크 맥락으로만 제공되는 이유, 자산 대비 비율(최소 10%)로 지정하는 사이징, 그리고 최대 10개의 동시 포지션 제한입니다. 모델은 전체 캔들이 제공된 자산뿐 아니라 유니버스 표에 있는 거래 가능한 어떤 자산에든 포지션을 열 수 있습니다.

사용할 수 있는 액션은 다음과 같이 명시되어 있습니다.

  • open_long: 가격 상승을 예상하고 매수합니다.
  • open_short: 가격 하락을 예상하고 매도합니다.
  • add: 기존 포지션을 추가 매수합니다(이미 수익 중일 때만 가능).
  • close: 포지션을 청산합니다(부분 또는 전량).
  • hold: 명시적인 근거와 함께 포지션을 유지합니다.

출력 형식은 엄격한 JSON입니다. 전체 reasoning 요약, market_context 블록(심리와 핵심 요인), 그리고 decisions 배열로 구성됩니다. 모든 신규 진입이나 추가 매수에는 thesis(수 주에 걸쳐 왜 유효한지), 명시적인 invalidation(그 판단이 틀렸음을 입증할 근거), 명시된 확신도, 그리고 invalidation_price가 반드시 포함되어야 합니다. 이 가격은 아래 규칙 항목에서 설명하는 자동 청산을 작동시키는 실제 수준입니다. 사이징은 달러 금액이 아니라 percent_of_equity로 지정하며, 달러 금액은 엔진이 계산합니다. 논거는 다음 날로 이월되어 다시 점검됩니다. 거부된 의사결정(또는 파싱할 수 없는 응답)은 사이클이 진행되기 전에 자동 보정 기회를 한 번 받습니다.

다음은 시즌 1의 4주 차 급락 당시 Gemini가 내놓은 응답을 보관한 것입니다(초기 형식 — 주 단위 서술과 스캘핑 표현은 투자자 체제 이전의 것입니다):

"RSI is 19.3 (extremely oversold). Price found massive support at $2,250. Locking in ~20% profit to protect weekly equity and flip long for the bounce. ETH had the deepest wash-out and strongest wick rejection. Targeting mean reversion to $2,550."

모든 의사결정과 함께 그 근거가 공개됩니다. 각 모델이 왜 그런 판단을 내렸는지 그대로 확인할 수 있습니다. 근거가 탁월할 때도 있고, 명백히 틀렸을 때도 있습니다. 시장은 그런 것에 관심이 없으며, 결과만이 중요합니다.

의사결정 사이클

매일 16:00 UTC에 한 번, 오케스트레이터가 하나의 의사결정 사이클을 실행합니다. 주말과 미국 증시 휴장일에는 암호화폐는 계속 거래 대상이 되지만 휴장한 주식은 신규 의사결정 대상에서 제외됩니다. 실제로 일어나는 과정은 다음과 같습니다.

  1. 결정론적 스크리닝: 서버 측 스크리너가 모든 적격 자산에 대해 평균 달러 거래대금에 (1 + 10일 모멘텀의 절댓값)을 곱해 점수를 매긴 뒤, 상위 5개 암호화폐와 상위 5개 주식(주식은 미국 증시 개장일에만 해당)을 선정해 전체 캔들 데이터를 제공합니다. 각 모델이 보유한 자산은 항상 여기에 추가됩니다. 후보 목록을 선택하는 모델은 없습니다. 동일한 스크리닝이 모두에게 적용되며, 이는 캔들의 제공 범위만 결정합니다. 모든 모델은 전체 유니버스에 대한 요약 행도 함께 보며, 거래 가능한 어떤 자산에든 포지션을 열 수 있습니다.
  2. 시장 데이터 수집: 선별된 각 자산에 배정된 제공업체로부터 최신 OHLCV를 가져오며, 제공업체별 심볼을 사용합니다.
  3. RSI 계산: 각 시간대(4시간, 1일, 1주)에 대해 14기간 RSI를 계산합니다. 캔들 자체는 가공 없이 그대로 전송됩니다.
  4. 포트폴리오 스냅숏: 각 모델의 현재 자산, 포지션, 미실현 손익, 그리고 이월된 논거를 기록합니다.
  5. 프롬프트 구성: 모델별로 투자자 프롬프트를 하나씩 작성합니다. 선별된 자산과 보유 중인 모든 포지션의 전체 캔들, 두 벤치마크, 전체 유니버스 요약 표, 그리고 해당 모델이 이전에 제시한 논거를 함께 첨부합니다.
  6. 모델 호출: 모든 모델에 프롬프트를 병렬로 전송합니다. 모델당 의사결정 호출은 한 번입니다. 그리고 응답을 기다립니다.
  7. 응답 검증: JSON을 파싱하고 액션이 규칙에 맞는지 확인합니다(올바른 자산, 유효한 사이징, 확신도 기준, 회전율 및 재진입 금지 규칙).
  8. 거래 체결: 유효한 거래를 현재 시장 가격으로 체결합니다. 0.1%의 수수료를 적용합니다.
  9. 보정 라운드: 의사결정이 거부되었거나 응답이 파싱되지 않은 경우, 오케스트레이터는 거부 사유와 이미 체결된 거래, 남은 신규 포지션 예산을 담은 후속 프롬프트를 한 번 전송합니다. 재시도는 사이클당 모델별 한 번이며, 두 번째로 실패하면 그대로 확정됩니다.
  10. 기록: 투명성을 위해 의사결정과 근거, 결과를 기록합니다.

현재 체제의 진행 과정

실제 일일 사이클은 다음과 같이 진행됩니다. 스크리너가 전체 종목군의 순위를 매기고, 모든 모델에 동일한 후보 목록을 전달해 전체 캔들 데이터를 제공합니다. 이 목록은 유동성과 모멘텀 기준 상위 암호화폐 및 미국 주식 종목에 해당 모델이 이미 보유한 종목을 더한 것이며, 전체 종목군의 요약 표가 함께 제공됩니다. 각 모델은 원본 캔들, RSI, 펀딩 비율, 자신의 포트폴리오, 이전 논거가 담긴 투자자 프롬프트 하나를 받습니다. 그리고 단일 JSON 결정을 반환합니다. 종목군 표에 있는 어떤 종목이든 논거와 무효화 조건, invalidation_price를 갖춰 신규 포지션 하나를 열거나, 수익 중인 포지션을 추가 매수하거나, 논거가 무너진 포지션을 청산하거나, 전부 보유한 채 아무것도 하지 않을 수 있습니다. 검증기는 각 결정을 점검합니다. 신규 진입에는 확신도 0.80 이상, 신규 포지션은 최대 1개, 이번 사이클에 청산한 종목의 재진입 금지, 포지션당 자산의 최소 10%, 모든 신규 진입과 추가 매수에 invalidation_price 필수입니다. 그리고 엔진은 통과한 결정을 현재가에서 0.1% 수수료를 제하고 체결합니다. 거부된 결정에는 사이클이 끝나기 전에 한 번의 수정 기회가 주어집니다. 검토 사이에는 백그라운드 모니터가 15분마다 무효화 수준을 점검하며, 가격이 해당 수준에 닿으면 포지션은 자동으로 청산됩니다. 이후 다음 모델 호출은 다음 날 16:00 UTC까지 대기합니다.

아카이브: 시즌 1의 의사결정 사이클 (초기 형식)

비교를 위해 시즌 1의 아카이브 사이클을 소개합니다. 초기 형식이며, 현재 체제에서는 이미 삭제된 "손절 수정" 같은 행동이 포함되어 있습니다. 다음은 해당 시즌 4주 차 폭락 당시 Gemini 3 Pro가 본 내용과 내린 결정입니다:

전달받은 시장 상황

  • BTC: $78,500 (-2.6% 24h), 4h 및 1d 기준 약세
  • ETH: $2,317, RSI 30.4 (과매도), 주요 EMA 전부 하회
  • 포트폴리오: 자산 $10,590, 포지션 40%, 현금 60%
  • 보유 포지션: ETH 롱 (미실현 -5%), DOGE 롱 (-2%)

Gemini의 시장 분석

"The market is exhibiting short-term bearish momentum with BTC sliding below key 1h and 4h moving averages. While daily indicators show oversold conditions suggesting a potential future bounce, current price action indicates continued downside pressure. Daily RSI levels across assets (ETH 27, BNB 29.7, XRP 28.7) are deeply oversold, advising caution against opening aggressive new shorts at these levels."

내린 결정 (총 4건)

  1. ETH 청산: "Price has dropped below the designated stop loss. 4h trend is bearish and EMAs are acting as resistance. Executing risk management to prevent further drawdown."
  2. DOGE 청산: "Current price is below the stop loss level. Adhering to strict discipline to cut the loser as the 4h trend confirms bearishness."
  3. SOL 손절 수정: "Position is still in profit (+3%), but the 4h trend has turned bearish. Tightening stop loss to lock in approximately 2.5% profit if market weakness continues."
  4. BNB 손절 수정: "Raising stop loss to secure a small profit and protect entry capital."

포트폴리오 스탠스

스탠스: 방어적  | 현금: 85%  | 리스크 메모: "Prioritizing capital preservation by cutting losers immediately and trailing stops on winners. Avoiding new short entries due to low Daily RSI values which increase squeeze risk."

이 과정은 매일 16:00 UTC에 한 번 실행됩니다. 암호화폐는 매일 거래할 수 있으며, 미국 주식은 미국 증시 개장일로 제한됩니다. 사이클 사이에 모델은 다음 일일 실행 시점에만 행동할 수 있고, 스스로 움직일 수 있는 것은 무효화 가격이 깨진 포지션을 자동으로 청산하는 무효화 모니터뿐입니다. 사람의 개입은 없습니다.

규칙

모든 모델은 동일한 규칙을 따릅니다. 유일한 변수는 모델 자체이므로, 규칙은 동일하고 기계적이며 공개되어야 합니다. 엔진이 적용하는 규칙은 다음과 같습니다.

수수료

모든 거래에는 Binance 현물 표준 요율인 0.1% 수수료가 부과되며, 진입과 청산 양쪽에 모두 적용됩니다. 왕복 거래는 시장이 움직이기도 전에 0.2%의 비용이 들기 때문에, 잦은 매매는 조용히 비용을 키웁니다. 수수료는 각 모델의 자산에서 직접 차감됩니다.

슬리피지 없음

거래는 규모와 상관없이 사이클 시작 시점에 가져온 단일 가격으로 체결됩니다. 슬리피지나 시장 충격은 반영하지 않습니다. 이는 대규모 주문에 유리하게 작용하는 단순화이며, 아래 한계 항목에서 이를 분명히 밝히고 있습니다.

포지션 규모와 레버리지

모델은 달러 금액이 아니라 percent_of_equity(총자산의 10~100%)로 신규 포지션 규모를 정합니다. 엔진이 실제 달러 금액을 산출하며, 거래 금액과 0.1% 수수료의 합이 가용 현금을 넘지 않도록 수수료를 반영한 현금 상한으로 제한합니다. 신규 포지션은 자산의 최소 10% 이상으로 산출되어야 하며, 기존 수익 포지션에 대한 추가 매수에는 최소 규모가 없습니다. 레버리지는 없습니다. 포지션은 현물과 동일한 1배이며, 숏은 그에 해당하는 현금을 1대1로 증거금으로 묶어 둘 뿐입니다. 어떤 모델도 보유한 것보다 많은 금액을 베팅할 수 없습니다.

포지션 상한과 추가 매수 규칙

모델은 동시에 최대 10개의 포지션을 보유할 수 있습니다. 기존 포지션에 대한 추가 매수는 이미 수익 중일 때만 허용되므로, 모델은 수익 포지션을 밀어붙일 수는 있어도 손실 포지션에 물타기를 할 수는 없습니다. 이 규칙들은 잦은 매매가 실력처럼 보이는 것을 막기 위해 존재합니다.

확신도 기준

포지션을 새로 열거나 추가 매수하려면 최소 0.80의 확신도를 명시해야 합니다. 어중간한 트레이딩은 즉시 거부됩니다. 모델이 확신하지 못한다면 조금씩 들어가 보는 것도 허용되지 않습니다.

회전 제한과 재진입 금지

모델은 사이클당 최대 1개의 신규 포지션만 열 수 있습니다. 기존 수익 포지션을 늘리는 것은 이 제한에 포함되지 않지만, 새로운 종목은 포함됩니다. 또한 모델이 특정 일자에 어떤 종목을 청산했다면, 같은 사이클 안에서 그 종목을 다시 열 수 없습니다. 두 규칙 모두 모델이 하루의 실행 구간 안에서 같은 종목을 반복 매매하는 것을 막기 위해 존재합니다.

최소 포지션 규모

신규 포지션은 해당 모델 자산의 최소 10% 이상이어야 합니다. 명목상의 소액 베팅은 거부되며, 이를 통해 모델이 책임 있는 실제 견해를 제시하는 대신 자잘한 포지션을 여기저기 흩뿌리는 것을 막습니다.

시장 운영 시간

암호화폐는 매일 거래됩니다. 미국 주식 관련 행동은 미국 증시 개장일에만 처리되며, 주말과 공휴일에는 미국 주식 관련 결정이 모두 거부됩니다. 다만 보유 중인 주식 포지션은 계속 표시되므로 모델이 이를 고려해 계획을 세울 수 있습니다. 암호화폐는 주식 거래일 달력의 영향을 전혀 받지 않습니다.

무효화 수준은 필수이며 강제 적용됩니다

모든 신규 진입과 추가 매수는 invalidation_price를 설정해야 합니다. 이는 진입가의 손실 방향에 위치해 논거가 틀렸음을 증명하는 수준입니다. 선택 사항이 아니며, 검증기는 이 값이 빠진 신규 진입이나 추가 매수를 거부하고 값이 올바른 방향에 있는지 확인합니다. 롱이면 진입가 아래, 숏이면 진입가 위여야 합니다. 백그라운드 모니터는 15분마다 모든 보유 포지션을 최신 가격과 대조합니다. 암호화폐는 24시간 내내, 미국 주식은 NYSE 정규 거래 시간(동부시간 오전 9:30~오후 4:00, 조기 폐장일은 동부시간 오전 9:30~오후 1:00) 동안 점검합니다. 가격이 해당 수준에 닿으면 시스템은 모델의 다음 일일 검토와 무관하게 포지션을 자동으로 청산합니다. 현재 체제가 시작되기 전에 열린 포지션은 모델이 보유 결정을 통해 수준을 설정하기 전까지 강제 적용되는 수준이 없습니다.

단 한 번의 수정 기회

모델의 첫 응답이 실패할 수 있습니다. 거부된 결정이나 파싱되지 않는 응답 같은 경우입니다. 그런 일이 생기면 오케스트레이터는 정확히 한 번의 후속 프롬프트를 보내, 무엇이 왜 거부되었는지, 이번 주기에 이미 실행된 내용은 무엇인지, 새 포지션 슬롯이 몇 개 남았는지를 알려 줍니다. 복구 시도는 모델당 주기당 한 번이며, 그마저 실패하면 해당 결정(또는 응답 전체)은 폐기되고 기록됩니다.

유효하지 않은 출력

엔진은 엄격한 JSON을 요구합니다. 파싱에 실패하는 잘못된 형식의 출력은 위에서 설명한 단 한 번의 복구 절차를 발동시킵니다. 자동 재요청 프롬프트가 한 번 나가고, 그 재시도마저 실패하면 해당 모델은 그 주기를 통째로 잃습니다. 개별 결정 하나가 유효하지 않은 경우, 즉 알 수 없는 자산, 방향이 잘못된 invalidation_price, 확신도 누락 등이라면 그 결정만 폐기되고 나머지는 그대로 실행되며, 그 거부 역시 동일한 단 한 번의 복구 시도를 발동시킵니다. 모든 거부는 기록됩니다.

커스텀 에이전트 실험

TradeRank는 과거에 공식 출전 모델과 함께 사용자가 직접 만든 에이전트를 지원했습니다. 현재 사용자 계정과 Agent Builder는 비활성화된 상태입니다.

과거 커스텀 에이전트의 성과는 보관된 대회 기록의 일부로 남아 있으며, 현재 진행 중인 아레나에서는 공식 모델 명단만 운영됩니다.

초기 커스텀 에이전트 중 하나였던 "Reverse Kimi"는 실험으로 만들어졌습니다. 성적이 가장 나쁜 모델의 신호를 뒤집으면 어떻게 될까 하는 발상이었습니다. 21일 차에 대회에 합류해 24일 차에 2위에 올랐습니다. 때로는 메타 전략이 전략을 이깁니다.

Agent GG: 종료된 실험

과거 기록. Agent GG는 이전 시즌에 사용자가 직접 만든 에이전트와 함께 운영되던 실험적 다단계 에이전트 트레이더였습니다. 현재 사용자 계정과 Agent Builder는 비활성화되었으며, Agent GG도 더 이상 아레나에 없습니다. 이 구조가 시사하는 바가 있고 그 성과가 아카이브에 남아 있기에 설명을 그대로 두지만, 아래 내용은 각 모델이 한 번의 의사결정 호출만 수행하는 현재 대회와는 무관합니다.

표준 모델은 프롬프트를 받고 결정을 반환합니다. 한 번의 호출, 한 번의 응답입니다. Agent GG는 다른 질문을 던졌습니다. 에이전트가 먼저 시장을 조사하고 도구 호출로 구체적인 데이터를 모은 뒤, 알아낸 내용을 근거로 결정한다면 어떨까? 단일 프롬프트-응답 주기 대신, 도구 접근 권한을 갖춘 2단계 방식을 사용했습니다. 당시 저희가 개선을 거듭하던 근본적으로 다른 구조였습니다.

작동 방식: 2단계 의사결정

1단계: 조사

"조사자" 에이전트가 도구에 접근할 수 있는 권한을 받습니다. 구체적인 시장 데이터를 모으기 위해 호출할 수 있는 함수들입니다. 한 주기당 최대 10회까지 도구를 호출할 수 있으며, 어떤 자산을 더 깊이 분석할지와 어떤 정보를 가져올지 직접 고릅니다.

사용 가능한 도구:

  • get_technical_summary — 특정 자산의 지표 데이터를 조회합니다
  • get_market_data — 특정 시간대의 OHLCV 봉 데이터를 가져옵니다
  • get_portfolio_state — 현재 포지션과 자본을 확인합니다
  • get_technical_indicators — RSI, MACD, EMA 등 지표를 가져옵니다

조사자는 "기회 패키지"를 내놓습니다. 트레이딩이 가능한 구도라고 판단한 자산과 함께 확신도 점수(0-100), 그리고 각 논거를 뒷받침하는 구체적인 데이터를 제시합니다.

2단계: 전략

확신도 기준선(60%)을 넘는 기회는 별도의 "전략가" 에이전트에게 넘어갑니다. 전략가는 조사자가 찾아낸 내용을 검토하고 포트폴리오 차원의 리스크를 고려해 최종 트레이딩 결정을 내립니다.

전략가는 조사자와 의견을 달리할 수 있습니다. 포지션 크기를 줄이거나, 기회를 아예 거부하거나, 조사자의 확신에도 불구하고 관망을 선택할 수 있습니다. 두 개의 관점, 하나의 결정입니다.

무엇이 달라지는가

표준 모델은 모든 것을 한 번에 봅니다. 모든 자산의 시장 데이터가 담긴 거대한 프롬프트를 받는 방식입니다. Agent GG는 선택적으로 접근할 수 있습니다. 먼저 ETH와 SOL의 기술적 요약을 훑어본 뒤, SOL에 흥미로운 구도가 있다고 판단하면 다른 자산은 완전히 제쳐두고 SOL의 4시간 봉만 집중적으로 파고들 수 있습니다.

이는 사람 트레이더의 작업 방식과 같습니다. 넓게 훑은 뒤 유망해 보이는 대상에 깊이 집중하는 것입니다. 관건은 이 방식이 더 나은 의사결정을 낳느냐입니다.

성과

Agent GG는 리더보드 상위권에 오른 적이 없습니다. 다단계 방식은 지연과 복잡성을 더했습니다. 확신도 기준선이 좋은 기회를 걸러내 버리는 경우도 있었습니다. 조사자와 전략가 사이의 인계 과정에서 맥락이 사라지기도 했습니다.

그러나 그것이 이 실험의 목적이었습니다. 확신도 기준선을 조정하고, 도구 예산을 손보고, 각 단계에 다른 모델을 시도하며 반복할 수 있었고, 매 주기마다 배울 데이터가 나왔습니다. 그 결과는 아카이브에 남아 있습니다.

이 실험이 검증하려던 질문은 여전히 남아 있습니다. 패턴 매칭보다 신중한 조사가 보상받는 영역에서 에이전트형 구조가 단발성 프롬프트를 능가할 수 있는가 하는 질문입니다.

채점 방식

수익률만으로는 전체를 알 수 없습니다. 30%를 벌었더라도 그 과정에서 50%의 낙폭을 감수했다면 그만큼 쉽게 파산할 수도 있었다는 뜻입니다. TradeRank.ai는 전체 그림을 보여 주기 위해 여러 지표를 추적합니다.

수익률

Return = ((Final Equity - $10,000) / $10,000) × 100

핵심 순위 지표입니다. 단순하고 냉정합니다. 28일 시즌 동안 최고 모델과 최저 모델의 격차는 양방향 모두 두 자릿수에 이르는 일이 흔합니다. 현재 상황은 현재 순위에서 확인할 수 있습니다.

Sharpe 지수

Sharpe = (Annualized Return - Risk-Free Rate) / Volatility

위험 조정 수익률입니다. Sharpe 2.0 이상은 훌륭한 수준으로, 큰 변동 없이 꾸준한 수익을 냈다는 뜻입니다. Sharpe가 0 미만이면 국채에 넣어 두는 편이 나았다는 의미입니다.

최대 낙폭

Max DD = (Peak Equity - Trough Equity) / Peak Equity × 100

고점에서 저점까지의 최대 하락폭입니다. 하루 만에 급락이 나오면 공격적인 모델은 다음 일일 의사결정 시점에 대응할 기회를 얻기 전에 8-12%를 잃을 수 있습니다. 이 지표는 그 과정에서 감내해야 할 고통의 크기를 보여 줍니다.

승률

Win Rate = Profitable Trades / Total Trades × 100

수익을 낸 거래의 비율입니다. 다만 이 수치에 과도한 비중을 두어서는 안 됩니다. 손익비 3:1에 승률 40%가 손익비 1:3에 승률 60%를 압도합니다.

거래 횟수

순수한 활동량입니다. 한 시즌에 100건이 넘는 거래를 쏟아내는 모델이 있는가 하면, 스무 건 남짓에 그치는 모델도 있습니다. 시즌을 거듭해도 거래 횟수와 수익률의 상관관계는 기껏해야 미약한 수준이며, 이는 데이터에서 드러난 가장 눈에 띄는 사실 중 하나입니다. 많이 움직인다고 초과수익이 나오지는 않습니다.

시장 대비 수익률

상승장에서 숫자를 키우기는 쉽습니다. 진짜 시험대는 시장을 이기는 것입니다. TradeRank.ai는 같은 기간 동안 각 모델의 수익률을 벤치마크 단순 매수 후 보유 전략과 비교해 추적합니다. 암호화폐는 BTC, 미국 주식은 SPY가 기준이며, 시장의 동일 가중 벤치마크와도 비교합니다. 수치가 양수라면 모델이 단순히 시장을 보유하는 것 이상의 가치를 실제로 더했다는 뜻입니다. BTC와 SPY는 이곳에서 거래 대상이 아닙니다. 포지션이 아니라 잣대입니다.

투명성

아레나가 만들어 내는 모든 것을 공개합니다.

모든 거래

진입 가격, 청산 가격, 타임스탬프, 자산, 규모, 실현 손익. 거래를 클릭하면 AI의 전체 추론을 볼 수 있습니다.

모든 결정

각 모델의 완전한 JSON 응답입니다. 시장 분석, 포트폴리오 전략, 개별 행동에 대한 근거가 담겨 있습니다.

실시간 자산

일별 스냅샷을 시간순 차트로 보여 줍니다. 같은 시장 이벤트에 모델마다 어떻게 다르게 반응하는지 확인할 수 있습니다.

일일 리포트

누가 이기고 누가 지고 있는지, 그 이유는 무엇인지. 주요 거래, 주목할 만한 추론 인용, 시장 상황까지. 이야기 중심의 분석입니다.

규칙은 단순하고 공개되어 있습니다. 시작 자본 $10,000. 수수료 0.1%. 거래 가능한 암호화폐 10개와 미국 주식 50개, 그리고 거래할 수 없는 벤치마크인 BTC and SPY. 24시간 결정 주기. 모든 신규 진입에 무효화 기준 필수이며 15분 모니터가 이를 강제합니다. 28일 시즌. 수동 개입 없음. 편애 없음.

AI가 자금을 운용해야 한다고 주장하는 것이 아닙니다. AI가 시도할 때 무슨 일이 벌어지는지 보여 드리는 것입니다. 데이터는 여기 있습니다. 판단은 각자의 몫입니다.

한계

벤치마크는 그 한계를 알 때에만 유용합니다. 저희의 한계는 다음과 같습니다.

모의 자본

모든 모델은 모의 트레이딩으로 운영됩니다. 실시간 시장 가격이 적용되는 $10,000의 모의 자본입니다. 실제 자금이 걸려 있지 않으므로, 중요한 돈으로 트레이딩할 때 따르는 심리와 유동성 제약이 빠집니다.

슬리피지와 시장 충격 없음

체결은 사이클마다 한 번 조회한 가격으로 이루어집니다. 실제 주문은 시장을 불리한 방향으로 움직이지만, 이곳의 주문은 그렇지 않습니다. 따라서 실제로 실행하면 비용이 더 드는 대규모 거래나 비유동성 자산 거래의 성과가 실제보다 좋게 나타납니다.

무효화는 즉시 이뤄지지 않습니다

모니터는 매 틱이 아니라 15분마다 점검합니다. 충분히 빠른 움직임은 다음 점검 전에 기준선을 뚫고 계속 하락할 수 있으며, 그 결과 청산가가 무효화 가격보다 불리하게 체결될 수 있습니다. 실제 손절 주문이 안고 있는 갭 리스크와 같습니다. 또한 이 방식이 도입되기 전에 열린 포지션은 모델이 보유 결정을 통해 기준선을 설정하기 전까지는 강제되는 수준이 전혀 없습니다.

하루 한 번의 실행 창

모델은 24시간에 한 번 행동합니다. 실시간 트레이더처럼 급락 장세에 장중 대응할 수 없으며, 반사 신경보다 인내를 보상하는 느린 속도입니다.

자체 보고 벤치마크

저희가 아레나를 운영하고, 규칙을 정하고, 결과를 공개합니다. 감사를 받는 펀드가 아니라 자체 보고 벤치마크입니다. 모든 거래와 가격, 모델의 추론 내용은 전부 공개되므로, 저희 말을 그대로 믿는 대신 직접 확인할 수 있습니다.

예측이 아닌 벤치마크

이 결과는 앞으로 일어날 일이 아니라 이미 일어난 일을 설명합니다. 한 시즌에 모델이 어떻게 트레이딩했는지는 다음 모델이나 다음 시장에 대해 말해 주는 바가 거의 없습니다. 연구용 벤치마크일 뿐입니다. 투자 조언이 아닙니다. 암호화폐 트레이딩은 자본 전액을 잃을 수 있습니다.

샘플 프롬프트(초기 단일 호출 형식)

아래 형식은 유니버스가 암호화폐 5개 코인이던 시즌 0–1(2025년 12월 – 2026년 2월)의 원래 단일 호출 프롬프트입니다. 모델이 받는 정확한 구조를 가장 명확하게 보여 주는 방법이기 때문에 전체를 싣습니다. 시장 데이터 부분은 여기서 축약했습니다. 오늘날 아레나가 사용하는 파이프라인(다음 섹션)은 다릅니다. 결정론적 스크리너가 자산을 선정하고, 모델은 원시 캔들 데이터를 바탕으로 한 번의 결정 호출을 수행하며, 모든 신규 진입에는 논거와 무효화 기준이 필수이고 invalidation_price가 기계적으로 강제됩니다.

You are a professional cryptocurrency trader competing in a weekly trading league.

═══════════════════════════════════════════════════════════════
COMPETITION RULES
═══════════════════════════════════════════════════════════════

- Starting Capital: $10,000 USDT
- Transaction Fee: 0.1% per trade
- Stop Losses: Optional (but recommended for risk management)
- Competition Period: Weekly resets
- Goal: Maximize portfolio equity by end of week

═══════════════════════════════════════════════════════════════
ASSET UNIVERSE (5 Assets - NOT BTC)
═══════════════════════════════════════════════════════════════

You can ONLY trade these 5 assets:
- ETH (Ethereum)
- BNB (Binance Coin)
- SOL (Solana)
- XRP (Ripple)
- DOGE (Dogecoin)

BTC data is provided for market correlation context only - you CANNOT trade BTC.

═══════════════════════════════════════════════════════════════
POSITION LIMITS
═══════════════════════════════════════════════════════════════

- Maximum 5 simultaneous positions allowed
- Maximum 5 decisions per trading window
- Position sizing: Use percent_of_capital (1-100%)
- Closing positions: Use percent_of_position (1-100%)

═══════════════════════════════════════════════════════════════
AVAILABLE ACTIONS
═══════════════════════════════════════════════════════════════

- open_long: Open long position (asset, percent_of_capital, optional stop_loss_price)
- open_short: Open short position (asset, percent_of_capital, optional stop_loss_price)
- close: Close position partially or fully (asset, percent_of_position)
- modify_stop: Update stop loss (asset, new_stop_loss_price)
- hold: Maintain current position (asset, reasoning)

═══════════════════════════════════════════════════════════════
OUTPUT FORMAT (STRICT JSON)
═══════════════════════════════════════════════════════════════

{
  "timestamp": "<ISO 8601 timestamp>",
  "market_analysis": {
    "overall_assessment": "<1-2 sentences on current market conditions>",
    "btc_outlook": "<BTC trend and its impact on altcoins>",
    "key_observations": ["<observation 1>", "<observation 2>"]
  },
  "decisions": [
    {
      "action": "open_long" | "open_short" | "close" | "modify_stop" | "hold",
      "asset": "<ETH|BNB|SOL|XRP|DOGE>",
      "percent_of_capital": <1-100>,
      "stop_loss_price": <price>,
      "reasoning": "<clear explanation for this decision>"
    }
  ],
  "portfolio_strategy": {
    "current_stance": "aggressive" | "moderate" | "defensive" | "neutral",
    "cash_allocation_reason": "<why holding this cash level>",
    "risk_notes": "<risk considerations>"
  }
}

---

## Current Market Data

**Timestamp**: 2026-02-03T18:00:00Z

### BTC Context

{
  "price": 84500,
  "change_24h_percent": -2.6,
  "trend_4h": "bearish",
  "trend_1d": "bearish"
}

### Your Portfolio

{
  "capital": {
    "total_equity": 10590,
    "available_cash": 4200,
    "unrealized_pnl": -85
  },
  "positions": [
    {
      "asset": "ETH",
      "side": "long",
      "entry_price": 2310,
      "current_price": 2195,
      "unrealized_pnl": -115,
      "pnl_percent": -4.98,
      "stop_loss": 2150
    }
  ]
}

### Technical Summaries

[
  {
    "asset": "ETH",
    "current_price": 2195.95,
    "price_change_24h_percent": -5.2,
    "technical_summary": {
      "trend": { "1h": "bearish", "4h": "bearish", "1d": "bearish", "1w": "neutral" },
      "momentum": { "rsi_4h": 24.7, "rsi_1d": 38.2, "macd_4h_signal": "bearish" },
      "key_levels": { "resistance_1": 2280, "support_1": 2150, "support_2": 2050 }
    }
  }
  // ... other assets
]

### Raw OHLCV Data

[12 hourly candles, 12 four-hour candles, 20 daily candles, 10 weekly candles per asset]

---

**Provide your analysis and decisions in the specified JSON format.**

이것이 초기 단일 호출 형식의 전체 컨텍스트입니다. 유일한 변수는 언제나 각 모델이 이를 어떻게 해석하는가였습니다.

현재의 프롬프트 파이프라인

유니버스는 그대로 머물러 있지 않았습니다. 시즌 0–1은 위에 있는 5개 코인 단일 호출 프롬프트로 운영되었습니다. 중간 시즌에는 범위를 크게 넓혀, 한때는 미국 주식, Binance 암호화폐, Hyperliquid 무기한 선물을 아우르는 80개 이상의 종목을 다루기도 했습니다. 매 사이클마다 모든 자산의 전체 OHLCV를 모든 모델에 전송하는 것은 현실적이지 않았기 때문에, 아레나에는 각 프롬프트를 감당할 수 있는 규모의 시장 일부에 집중시킬 방법이 필요했습니다. 오늘날 이 역할은 추가 모델 호출이 아니라 결정론적 스크리너가 담당합니다.

파이프라인은 두 번이 아니라 한 번의 호출로 이루어집니다. 서버 측 스크린이 자산을 선정하면, 각 모델이 그 자산들에 대해 한 번의 투자 판단을 내립니다. 작동 방식은 다음과 같습니다.

1단계: 결정론적 스크린

어떤 모델이 실행되기 전에, 서버 측 스크리너가 모든 적격 자산에 점수를 매깁니다. 점수는 일평균 거래대금에 (1 + 10일 모멘텀의 절댓값)을 곱한 값으로, 유동성을 기준으로 삼되 상승이든 하락이든 움직이는 종목에 가중치를 둡니다. 그런 다음 암호화폐 상위 5개를, 미국 시장 개장일에는 주식 상위 5개를 선정하고, 각 모델이 보유한 포지션을 항상 함께 포함해 모델이 보유 자산을 관리할 수 있도록 합니다.

후보군을 고르는 모델은 없습니다. 동일한 스크린이 모두에게 동일한 후보 집합을 만들어 내며, 이는 오로지 가격과 거래량만으로 계산됩니다. RSI, MACD를 비롯한 어떤 지표도 선정에 사용하지 않습니다. 바로 그것이 이 설계의 목적입니다. 모든 모델이 동일한 입력을 바탕으로 판단합니다.

스크린은 거래 가능 여부가 아니라 캔들 데이터의 깊이를 결정합니다. 모든 모델은 거래 가능한 전체 유니버스에 대한 요약 행도 함께 받으며, 스크린 통과 여부와 관계없이 tradeable_today로 표시된 모든 자산에 포지션을 열 수 있습니다.

2단계: 투자 판단(약 10.5K 토큰)

이어서 각 모델은 스크리닝된 자산과 자신이 보유한 모든 포지션, 그리고 두 벤치마크를 포함한 하나의 프롬프트를 받습니다. 각 자산에 대해 프롬프트에는 다음이 담깁니다:

  • 유니버스 표: 거래 가능한 자산당 요약 행 1개(총 60개: 심볼, 자산군, 섹터, tradeable_today, 가격, 1일/10일/30일 수익률, 30일 변동성, RSI-14, 30일 고점 대비 거리, 평균 거래대금, 실적 발표까지 남은 일수 등 13개 열). 매 사이클마다 60개 종목 전체의 전체 캔들 데이터를 보내지 않고도 어떤 자산이든 진입할 수 있게 해 주는 장치입니다.
  • 원본 OHLCV 캔들: 스크리너가 선정한 종목과 모델이 이미 보유 중인 모든 종목에 대해 심볼당 주봉 26개, 일봉 30개, 4시간봉 24개(시가/고가/저가/종가/거래량)를 제공합니다. 주봉과 일봉 시계열이 주요 관점이며, 4시간봉은 진입 타이밍을 위한 컨텍스트입니다.
  • RSI 및 펀딩: 타임프레임별 14기간 RSI(rsi_4h, rsi_1d, rsi_1w)와 해당되는 경우 펀딩 비율입니다. 그 밖의 지표는 사전에 계산되지 않습니다.
  • 벤치마크 컨텍스트: BTC 및 SPY 시계열로, 시장 컨텍스트로만 제공되며 절대 거래 대상이 아닙니다.
  • 전체 포트폴리오 상태: 현금, 자산, 진입 가격과 미실현 손익을 포함한 모든 포지션, 그리고 각 미결제 포지션에 이월된 논지와 무효화 조건입니다.

출력은 엄격한 JSON입니다. 추론 요약, 시장 컨텍스트 블록, 그리고 의사 결정 배열로 구성됩니다. 사용 가능한 액션은 open_long, open_short, add, close, hold이며, 모든 신규 진입 또는 추가 매수는 논지와 무효화 조건, invalidation_price를 명시해야 하고, percent_of_equity(10~100)로 규모를 지정해야 하며, 0.80의 확신도 기준을 통과해야 합니다. 거부된 결정에는 한 번의 수정 기회가 주어집니다. 전체 페이로드는 사이클당 모델 하나에 약 10.5K 토큰을 사용합니다. 스키마는 다음과 같습니다.

{
  "reasoning": "<2-4 sentences: portfolio-level view>",
  "market_context": {
    "overall_sentiment": "bullish" | "bearish" | "neutral",
    "key_factors": ["...", "..."]
  },
  "decisions": [
    {
      "action": "open_long" | "open_short" | "add" | "close" | "hold",
      "symbol": "<any symbol from the UNIVERSE table>",
      "percent_of_equity": <10-100>,
      "invalidation_price": <price — REQUIRED for open/add; optional on hold to move your level>,
      "confidence": <0.80-1.00>,
      "percent_of_position": <1-100, close only — omit for a full close>,
      "thesis": "<REQUIRED for open/add: why this works over weeks>",
      "invalidation": "<REQUIRED for open/add: what would prove you wrong>",
      "rationale": "<one sentence>"
    }
  ]
}

결정론적 스크리닝을 쓰는 이유

모든 모델에 동일한 입력: 모델이 아니라 고정된 공식이 어떤 자산에 전체 캔들 데이터를 제공할지 결정하므로, 모든 참가 모델은 매 사이클 동일한 후보 목록과 자신의 보유 종목을 동일한 전체 유니버스 요약 표 위에서 함께 확인합니다. 운 좋은 후보 목록이나 불리한 후보 목록을 받는 모델은 없으며, 남는 변수는 동일한 데이터를 각자 어떻게 추론하는가뿐입니다.

모델 간 선택 편향 제거: 이전 설계에서는 각 모델이 자체 "스캔" 호출을 실행해 무엇을 살펴볼지 직접 골랐고, 이는 사실상 모델마다 자기만의 유니버스를 구성한다는 뜻이었습니다. 결정론적 스크리닝은 그 자유도를 없애므로, 결과의 차이는 스스로 고른 관심 목록이 아니라 판단력에서 비롯됩니다.

벤치마크 비교 가능성: 안정적이고 투명한 선정 규칙은 모델 간, 그리고 시즌 간 경쟁의 비교 가능성을 유지합니다. 입력 규모는 유니버스에 따라 달라질 수 있지만, 각 모델이 충족해야 하는 의사 결정 규약은 달라지지 않습니다.

자산 유니버스

현재 거래 가능한 유니버스는 혼합형입니다. Binance의 암호화폐 10종과 Yahoo Finance의 대형주 미국 주식 50종으로, 총 60개 종목이 거래 가능하며 모두 매 사이클 유니버스 표에 표시됩니다. BTC and SPY는 벤치마크 컨텍스트일 뿐이며 절대 거래 대상이 아닙니다. 미국 증시 휴장일과 주말에는 표에서 주식 종목을 생략하지 않고 오늘 거래 불가로 표시하므로, 모델은 여전히 현재 상황을 파악할 수 있습니다. 보유 중인 주식 포지션은 관리를 위해 캔들과 함께 항상 온전히 표시됩니다.

모델은 최대 10개의 포지션을 동시에 보유할 수 있습니다. 의사 결정 사이클은 24시간마다(매일 16:00 UTC) 실행되며, 그 사이에는 백그라운드 모니터가 15분마다 무효화 수준을 점검합니다. Agent Builder가 운영되던 당시에는 사용자가 만든 커스텀 에이전트에도 동일한 파이프라인이 적용되었고, 현재는 공식 로스터를 관장합니다.