다중 에이전트 AI 트레이딩 시스템 실제
다중 에이전트 AI 트레이딩 시스템의 아키텍처, 시장 비용, 백테스트 함정을 설명합니다. 실제 성능과 주장을 분리한 분석을 확인하세요.
다중 에이전트 AI 트레이딩 시스템은 하나의 거래 결정을 여러 대규모 언어 모델 인스턴스에 분할하고, 각 인스턴스에 역할을 부여한 후, 이들의 출력을 단일 주문으로 병합합니다. 일반적인 구성은 뉴스 리더, 펀더멘털 분석가, 차트 분석가, 위험 점검자, 그리고 이를 중재하는 관리자 에이전트입니다. 2026년 7월 기준, 이러한 형태의 여러 오픈 소스 프레임워크가 GitHub의 알고리즘 트레이딩 주제에 수백 개의 별점을 받으며 존재합니다. 이 페이지는 아키텍처를 설명하고, 발표된 증거와 README 주장을 분리하며, 모든 버전이 극복해야 하는 비용에 대한 시장 데이터를 제시합니다.
다중 에이전트 AI 트레이딩 시스템의 실제 의미
아키텍처는 의장이 있는 위원회와 같습니다. 각 에이전트는 프롬프트 템플릿, 데이터 피드, 출력 스키마로 구성됩니다. 뉴스 에이전트는 헤드라인을 받아 레이블을 반환합니다. 펀더멘털 에이전트는 공시 발췌문을 받아 점수를 반환합니다. 의장 에이전트는 이러한 레이블과 점수를 받아 주문을 반환합니다.
이 설계에서 세 가지 속성이 따르며, 성능 주장을 검토하기 전에 각각을 명명할 가치가 있습니다.
일반적으로 모든 에이전트는 하나의 기본 모델을 공유합니다. 동일한 가중치에 대한 다섯 개의 프롬프트는 상관된 의견을 생성하므로, 다섯 에이전트의 투표는 다섯 개의 독립적인 추정치가 아닙니다. 위원회라는 표현은 구현이 제공하지 않는 다각화를 암시합니다.
시스템은 수치적 결정을 감싼 텍스트 파이프라인입니다. 모델은 단어를 읽고 토큰을 출력합니다. 포지션 사이징, 주문 유형, 스탑 배치, 청산 로직은 그 아래에 있는 일반 코드이며, 결과를 결정하는 대부분은 프롬프트가 아닌 해당 코드에 있습니다.
위원회의 왕복 시간은 몇 초가 걸립니다. 이는 주간 리밸런싱에는 작동 가능하지만, how-do-market-makers-make-money|시장 조성자가 마이크로초 단위로 호가를 제시하고 갱신하는 초단타 속도에서는 무의미합니다.
연구가 뒷받침하는 것과 그렇지 않은 것
금융 분야 언어 모델에 대한 발표된 연구는 매우 다른 강도의 세 가지 주장으로 나뉩니다.
추출 및 분류는 강력한 주장입니다. 모델은 감성을 레이블링하고, 공시에서 수치를 추출하며, 긴 문서를 몇 년 전에는 맞춤형 모델이 필요했던 정확도로 압축합니다. 이는 보류된 텍스트로 측정 가능하며 유효합니다.
시장 상태 설명은 혼합된 주장입니다. 모델은 상황에 대한 유창한 설명을 작성하며, 이러한 설명은 일반적으로 모델이 제시된 데이터와 일치합니다. 설명이 가격이 이미 포함하지 않은 정보를 담고 있는지 여부는 별개의 질문이며, 이를 신중하게 테스트한 논문들은 넓은 오차 범위를 가진 작은 효과를 보고합니다.
수익성은 약한 주장입니다. 대부분의 저장소 README는 자금이 조달된 실적 기록보다는 백테스트를 보고하며, 표본 내 자기자본 곡선과 실계좌 간의 거리는 퀀트 트레이딩에서 가장 오래된 거리입니다. 언어 모델을 루프에 넣는다고 해서 이 거리가 줄어들지는 않습니다.
신호가 극복해야 하는 비용 하한선
모든 거래는 스프레드를 넘나들며, 이 교차는 전략이 다른 무엇보다 먼저 극복해야 하는 하한선입니다. 2026년 6월 22일부터 26일까지 정규 시간 동안 미국 상장 6개 종목의 중간 호가 스프레드:
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS spread_bps,
round(2 * quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS round_trip_bps,
round(count() / 1e6, 1) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO', 'F', 'RIOT')
AND sip_timestamp >= toDateTime('2026-06-22 00:00:00')
AND sip_timestamp < toDateTime('2026-06-27 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY spread_bps베이시스 포인트는 1퍼센트의 100분의 1입니다. 패널에서 가장 좁은 종목인 SPY는 해당 주 동안 중간 스프레드가 0.27 베이시스 포인트였습니다. 가장 넓은 종목인 RIOT는 7.09를 기록했습니다. 왕복 거래는 스프레드를 두 번 지불하므로, 첫 번째 종목의 진입 및 청산은 0.55 베이시스 포인트 뒤에서 시작하고, 마지막 종목의 동일한 거래는 14.19 뒤에서 시작합니다. 포트폴리오를 일주일에 두 번 회전시키는 에이전트는 이 통행료를 연간 약 100번 지불하며, 통행료는 예측이 맞았든 틀렸든 부과됩니다. what-it-costs-to-trade-a-stock|주식 거래 비용은 나머지 비용을 항목별로 설명합니다.
방향성 예측이 이겨야 하는 노이즈
방향성 예측은 대부분 작은 숫자로 구성된 분포에 대해 평가됩니다. 2025년 모든 SPY 세션을 종가 대 종가 변동폭 크기로 정렬:
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
paired AS (
SELECT d, close_px,
any(close_px) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM daily
),
rets AS (
SELECT d, round(100 * (toFloat64(close_px) / toFloat64(prev_px) - 1), 3) AS ret_pct
FROM paired
WHERE prev_px > 0
)
SELECT multiIf(abs(ret_pct) < 0.25, 'under 0.25%',
abs(ret_pct) < 0.5, '0.25 to 0.5%',
abs(ret_pct) < 1.0, '0.5 to 1%',
abs(ret_pct) < 2.0, '1 to 2%',
'2% and up') AS move_bucket,
count() AS sessions,
round(100 * count() / sum(count()) OVER (), 1) AS pct_of_sessions
FROM rets
GROUP BY move_bucket
ORDER BY min(abs(ret_pct))연중 절반은 0.5% 이내에 있었습니다. under 0.25% 구간은 24.9%의 세션을 차지했고, 0.25 to 0.5% 구간은 또 다른 24.1%를 차지했습니다. 반대쪽 끝에서는 13 세션이 2% and up 움직였으며, 이는 연중 5.2%에 해당합니다.
이를 스프레드 패널과 나란히 놓으십시오. 1베이시스 포인트는 0.01%입니다. 0.3%의 일반적인 세션 변동폭은 좁은 스프레드의 30배이며, 넓은 스프레드의 대략 4배입니다. 산술은 인내심 있고 정확한 예측에는 여유를 남기고, 빠르고 미미한 예측에는 거의 여유를 남기지 않습니다.
실제 거래 가능한 유니버스의 위치
에이전트 프레임워크는 종종 수백 개의 티커를 매일 아침 스캔하는 방대한 커버리지를 광고합니다. 달러 거래량은 그 목록 중 얼마나 많은 부분이 규모를 흡수할 수 있는지 보여줍니다. 2026년 6월 30일 정규 시간 동안 거래된 모든 미국 상장 종목을 해당 세션의 달러 거래량 순위별로 그룹화:
모든 수치 뒤에 숨겨진 정확한 SQL
WITH tv AS (
SELECT ticker,
sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING sum(toFloat64(close) * toFloat64(volume)) > 0
),
ranked AS (
SELECT ticker, dollar_volume,
row_number() OVER (ORDER BY dollar_volume DESC) AS rk
FROM tv
)
SELECT multiIf(rk <= 10, 'top 10 names',
rk <= 50, 'ranks 11 to 50',
rk <= 200, 'ranks 51 to 200',
rk <= 1000, 'ranks 201 to 1000',
'ranks beyond 1000') AS liquidity_tier,
count() AS tickers,
round(sum(dollar_volume) / 1e9, 2) AS dollar_volume_bn,
round(100 * sum(dollar_volume) / (SELECT sum(dollar_volume) FROM tv), 1) AS pct_of_dollar_volume
FROM ranked
GROUP BY liquidity_tier
ORDER BY min(rk)10개 종목이 세션 달러 거래량의 22.5%인 약 205.04억 달러를 차지했습니다. 다음 40개 종목은 20.5%를 차지했습니다. 반대쪽 끝에서는 1000위를 넘는 10966개 종목이 12.9%를 공유했으며, 이는 전체 꼬리에 걸쳐 약 117.83억 달러에 해당합니다.
폭은 광고하기는 싸고 거래하기는 비쌉니다. 3천 개 종목을 순위 매기는 위원회는 순위 매기기 노력의 대부분을 해당 꼬리에서 소비하며, 여기서 위의 스프레드 패널은 반올림 오류가 아닌 실제 비용이 됩니다.
이러한 백테스트가 시스템을 과대평가하는 이유
과대평가된 백테스트의 가장 큰 단일 원인은 기간 선택입니다. 2016년부터 2025년까지의 SPY를 연도별로, 해당 연도의 최고 종가와 최저 종가 간 차이와 함께:
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
yr AS (
SELECT toYear(d) AS year,
argMin(close_px, d) AS first_close,
argMax(close_px, d) AS last_close,
max(close_px) AS high_close,
min(close_px) AS low_close,
count() AS sessions
FROM daily
GROUP BY year
)
SELECT year,
sessions,
round(100 * (toFloat64(last_close) / toFloat64(first_close) - 1), 1) AS price_return_pct,
round(100 * (toFloat64(high_close) / toFloat64(low_close) - 1), 1) AS high_low_range_pct
FROM yr
ORDER BY year2021에만 테스트된 시스템은 28.7% 더 높게 마감한 해로, 상승하는 흐름을 물려받습니다. 2022에만 테스트된 동일한 시스템은 -20%로 마감한 해로, 하락하는 흐름을 물려받습니다. 연중 최고 종가와 최저 종가 간 차이는 2020에서 68%에 도달했으며, 비교적 조용한 해에도 25.3% 이상을 유지했습니다.
기간 문제 위에 네 가지 함정이 있으며, 그중 하나는 언어 모델에만 해당됩니다.
- 훈련 데이터를 통한 선견지명. 2025년까지의 텍스트로 훈련된 모델은 2023년 거래가 어떻게 끝났는지 이미 읽었습니다. 2023년에 대한 백테스트는 모델이 답을 알고 있는 질문을 하며, 가격 시리즈를 섞는 어떤 방법으로도 그 지식을 제거할 수 없습니다.
- 티커 목록의 생존 편향. 오늘날의 상장 종목으로 구성된 유니버스는 도중에 상장 폐지된 종목을 생략합니다.
- 체결 가정. 모든 주문을 중간 가격에 체결하는 백테스트는 위의 전체 비용 패널을 지웁니다.
- 프롬프트 변형에 대한 선택. 스무 가지 프롬프트 표현을 시도하고 가장 좋은 것을 보고하는 것은 언어 모델이 등장하기 오래전부터 모수 탐색을 괴롭혔던 과적합과 동일합니다.
언어 모델 에이전트가 실제로 도움이 되는 분야
정직한 버전의 제안은 README 버전보다 좁지만 여전히 유용합니다.
읽기 볼륨 처리가 가장 명확한 이점입니다. 관심 종목 목록의 모든 공시와 헤드라인을 밤새 처리하고 구조화된 요약을 반환하는 에이전트는 수 시간의 인간 주의를 절약하며, 출력은 출처에 대해 확인 가능합니다.
상황을 평이한 언어로 설명하는 것이 두 번째입니다. 분산, 폭, 변동성에 대한 일일 문단을 인간이 읽을 동일한 숫자로부터 생성하는 것은 예측을 담지 않더라도 유용한 브리핑 문서입니다.
프로세스 위생이 세 번째입니다. 명시된 포지션 한도를 위반하는 주문을 거부하거나, 실적 발표일에 거래하려는 전략에 플래그를 지정하는 에이전트는 산만한 인간이 건너뛰는 규칙을 강제합니다.
이 세 가지 중 어느 것도 시장에서의 우위가 아닙니다. 모두 연구 및 운영 작업이며, 오늘날 측정 가능한 이점이 있는 곳입니다. the-low-volatility-anomaly|저변동성 이상 현상과 같은 문서화된 효과는 누군가가 이를 실제로 간주하기 전에 대규모 표본과 반복된 표본 외 재현이 필요했으며, 새로운 에이전트 프레임워크도 동일한 기준을 충족하거나 충족하지 못합니다. missed-the-best-days|최고의 날을 놓치는 것은 빈번한 전환이 장기 보유자에게 어떤 비용을 초래하는지 보여줍니다.
실무자들이 설명하는 규율
이러한 시스템을 공개적으로 운영하는 팀은 일반적으로 동일한 순서를 설명합니다. 며칠이 아닌 몇 달 동안 시뮬레이션된 체결로 순방향 테스트를 수행합니다. 종이 기록은 실시간 속도로만 축적되기 때문입니다. 프롬프트가 본 적 없는 표본 외 구간을 유지합니다. 모든 프롬프트, 모든 응답, 모든 주문을 기록합니다. 재생할 수 없는 위원회는 디버깅할 수 없기 때문입니다. 모델 외부에 있는 고정된 규칙으로 포지션을 설정합니다. 어떤 구간을 수익성 있다고 부르기 전에 위 패널의 모든 비용을 계산합니다.
FAQ
다중 에이전트 AI 트레이딩 시스템이 실제로 돈을 버나요?
공개된 증거는 빈약합니다. 대부분의 오픈 소스 프로젝트는 감사된 실계좌 기록보다는 백테스트를 게시하며, 언어 모델 전략의 백테스트는 특정 결함을 가지고 있습니다. 모델은 테스트 기간을 설명하는 텍스트로 훈련되었습니다. 감사되지 않은 자기자본 곡선은 소프트웨어를 입증할 뿐, 우위를 입증하지는 않습니다.
LLM 에이전트 위원회가 단일 모델보다 더 나은가요?
위원회는 일부 형식 지정 및 구문 분석 오류를 줄이고 출력에 구조를 추가합니다. 그러나 모든 에이전트가 동일한 기본 데이터에 대해 동일한 기본 모델을 쿼리할 때 독립적인 정보를 추가하지는 않습니다. 다섯 개의 상관된 의견은 대략 하나의 의견으로 투표하며, 추가 지연 시간과 추가 토큰 비용이 수반됩니다.
AI 에이전트가 시장 조성자보다 더 빠르게 거래할 수 있나요?
아니요. 언어 모델 왕복은 몇 초가 걸리는 반면, 전문 호가 시스템은 공동 배치된 하드웨어에서 마이크로초 단위로 작동합니다. 속도에 이익이 의존하는 모든 전략은 이러한 시스템이 할 수 있는 범위 밖에 있으며, 따라서 며칠 및 몇 주의 기간이 실행 가능한 영역으로 남습니다.
LLM 트레이딩 에이전트에 특화된 가장 큰 백테스트 함정은 무엇인가요?
훈련 데이터 선견지명입니다. 기존 백테스트는 미래 가격이 결정에 유출되는 것을 방지하지만, 모델의 가중치는 이미 테스트 기간에 대한 발표된 논평을 인코딩합니다. 워크포워드 윈도우와 표본 외 분할은 가중치에 내장된 지식을 제거하지 않으며, 유일한 깨끗한 테스트는 훈련 컷오프 이후의 기간입니다.
종이 거래 기간은 얼마나 오래 운영되어야 하나요?
유용한 프레이밍은 달력 길이가 아닌 표본 크기입니다. 주간 거래 전략은 연간 약 50개의 관측치를 생성하며, 이는 우위에 대한 어떤 주장에도 작은 표본입니다. 실무자들은 일반적으로 좋은 구간뿐만 아니라 하락장을 경험할 수 있을 만큼 충분한 거래를 원합니다.
이 페이지의 모든 패널은 실제 미국 시장 데이터에 대한 저장되고 버전 관리된 쿼리입니다. 아무 패널이나 열어 그 뒤에 있는 SQL을 읽거나, Strasmore 터미널에서 동일한 테이블에 대해 직접 쿼리를 실행하십시오.